var Connect = YAHOO.util.Connect;
var dialog, calendar, showCalendar, field, panelDialog;
var lastPageUrl = '/';
var preLastPageUrl = '/';

function getElement(elementID)
{
	return document.getElementById(elementID);
}

function loadBack(contentElementID)
{
	return loadPage(preLastPageUrl, contentElementID);
}

function loadPagePanel(path, width)
{
	getElement('panelDialogContent').innerHTML = '';
	if (width) {
		panelDialog.cfg.setProperty("width", width);
	}
	panelDialog.show();
	return loadPage(path, 'panelDialogContent');
}

function showLoader(contentElementID)
{
	//$("#"+contentElementID).hide(100, function(){
		$("#"+contentElementID).html('Loading. Please wait...');
		//$("#"+contentElementID).show(100);
    //});

}

function loadPage(path, contentElementID)
{
	if (getElement('loader')){
		getElement('loader').style.display = 'none';
    }
	if (getElement('loaderactive')) {
		getElement('loaderactive').style.display = 'block';
	}

    if (!contentElementID || !getElement(contentElementID)){
    	contentElementID = 'Content';
    }

	function handleSuccess(o)
    {
		setContent(contentElementID, o.responseText);
		if (getElement(contentElementID).style.display == 'none') {
			getElement(contentElementID).style.display = 'block';
		}
		preLastPageUrl = lastPageUrl;
		lastPageUrl = path;
	}
    Connect.asyncRequest('get', path, {success:handleSuccess,failure:function(o){}});	
    
    return false;
}


function loadFormPanel(form)
{
	return loadForm(form, 'panelDialogContent');
}

function loadForm(form, contentElementID)
{
	if (getElement('loader')){
		getElement('loader').style.display = 'none';
	    getElement('loaderactive').style.display = 'block';    	
    }
	YAHOO.util.Connect.setForm(form);
    if (!contentElementID || !getElement(contentElementID)){
    	contentElementID = 'Content';
    }	

	function handleSuccess(o)
    {
        setContent(contentElementID, o.responseText);
    	preLastPageUrl = lastPageUrl;
    	lastPageUrl = form.action;
	}
	YAHOO.util.Connect.asyncRequest('POST', form.action, {success:handleSuccess, upload:handleSuccess, failure:function(o){}});	

    return false;
}

function hidePanelDialog()
{
	panelDialog.hide();
	return false;
}

function showCalendar(el)
{
    if (!calendar){
    	calendar = new YAHOO.widget.Calendar("cal", {
    	    iframe:false,          
    	    hide_blank_weeks:true,
    	    mindate:"mm/dd/yyyy"
    	});    

    	calendar.selectEvent.subscribe(okHandler, calendar, true);

    	calendar.render();

    	calendar.renderEvent.subscribe(function() {
    	    dialog.fireEvent("changeContent");
    	});    	
    }
	
	var id = el.id.split('_');
    field = id[1];
    elPos = YAHOO.util.Dom.getXY(el);
    dialog.moveTo(elPos[0],elPos[1]+20);
    dialog.show();
    if (YAHOO.env.ua.opera && document.documentElement) {
		document.documentElement.className += "";
	} 
}

function okHandler() {
    if (calendar.getSelectedDates().length > 0) {
        var selDate = calendar.getSelectedDates()[0];
        var dStr = selDate.getDate();
        var mStr = selDate.getMonth()+1;
        var yStr = selDate.getFullYear();
        YAHOO.util.Dom.get(field).value = mStr + "/" + dStr + "/" + yStr;
    } else {
        YAHOO.util.Dom.get(field).value = "";
    }
    dialog.hide();
}



function init()
{
	panelDialog = new YAHOO.widget.Dialog("panelDialog", 
			{ width : '300px',
			  fixedcenter : true,
			  visible : false, 
//			  constraintoviewport : true,
			  draggable:false,
			  close:true			  
			});


	dialog = new YAHOO.widget.Dialog("container", {
	    draggable:false,
	    close:true
	});
	
	dialog.render();
	dialog.hide();
	panelDialog.render();
	panelDialog.hide();
	getElement('container').style.display = 'block';
	getElement('panelDialog').style.display = 'block';	
}
YAHOO.util.Event.onDOMReady(init);


var editForm = {
    header:null,
    content:null,
    width:'300px',
    dialog:null,
    
    init:function(){
//        editForm.content = getElement(editForm.content);
        editForm.dialog = new YAHOO.widget.Dialog(
                                                    'edit',  
                                                    {   
                                                        width:editForm.width,
                                                        fixedcenter:true, 
                                                        draggable:false, 
                                                        modal:true,
                                                        visible:false,
                                                        constraintoviewport : false,
                                                        close:false
                                                    }
                                                );
                                                
        editForm.dialog.callback = { success: function(o) {
                                    		var response = o.responseText;
                                    		response = response.split("|");
                                    		if(response[0] && response[0] == '0'){
                                    		  editForm.dialog.setBody(response[1]);  
                                    		  editForm.dialog.show();
                                    		}else{
                                    		  setContent(editForm.content, response);
                                    		}
                                    	 },
            				         failure: function(o) {
                                    		alert("Submission failed: " + o.status);
                                    	 }};
        editForm.dialog.setHeader(editForm.header);
		editForm.dialog.setBody("");
		editForm.dialog.setFooter("");
        editForm.dialog.render('panel');

    },
    
    insert:function(html){
        editForm.dialog.setBody(html);
        editForm.dialog.show();
    },
    
    cancel:function(){
        editForm.dialog.hide();
    },
    
    submit:function(){
        editForm.dialog.submit();
    }

}


var getEditForm = function(el){
    path = el.href;
    function handleSuccess(o)
    {
    	editForm.insert(o.responseText);
	}
    Connect.asyncRequest('get', path, {success:handleSuccess,failure:function(o){}});	
    return false;
}


function setContent(contentElementID, response){
    
    var Content = getElement(contentElementID);
	Content.innerHTML = response;
	var ob = Content.getElementsByTagName("script");
	for(var i = 0; i < ob.length; i ++){
		if(ob[i].text != null){ 
			eval(ob[i].text);
		}		
	};
}

function switchReccurencePeriod(period)
{
	getElement('DailySettings').style.display = 'none';
	getElement('WeeklySettings').style.display = 'none';
	getElement('MonthlySettings').style.display = 'none';
	getElement('YearlySettings').style.display = 'none';
	switch(period){
       case 'Daily':{
    	    getElement('DailySettings').style.display = 'block';
    	    break;
		    };
       case 'Weekly':{
    	    getElement('WeeklySettings').style.display = 'block';
    	    break;
		    };
       case 'Monthly':{
    	    getElement('MonthlySettings').style.display = 'block';
    	    break;
		    };
       case 'Yearly':{
    	    getElement('YearlySettings').style.display = 'block';
    	    break;
		    };
	   default:{
		   getElement('DailySettings').style.display = 'block';
		   }
	};
}

function getControlURL(componentUrl, page, results, sort, direction)
{
	return componentUrl + '/getlist/format/table/page/' + page + '/results/' + results + '/sort/' + sort + '/dir/' + direction;
}

var countTime = {
    setTime:null,
    startTime:null,
    element: null,
    url:null,
    init:function(){
        countTime.element = getElement('time');
        countTime.checktime();
    },
    
    checktime:function(){
        countTime.time();
        if(countTime.setTime == 0){
            countTime.expired();
        }else{
            window.setTimeout("countTime.checktime()",1000)
        }
    },
    
    time:function(){
        countTime.setTime--;
        countTime.display();
    },
    
    expired:function(){
        alert('Sorry your time expired!');
        location.href=countTime.url;
    },
    
    display:function(){
        if (countTime.setTime>60){
            min = parseInt(countTime.setTime/60);
        }else{
            min = 0;
        }
        
        sec = parseInt(countTime.setTime-min*60);
        if(sec < 10){
            sec = "0"+sec;
        }
        if(min < 10){
            min = "0"+min;
        }    
        
        countTime.element.innerHTML = min+":"+sec;
        return;
    }
}

initWysiwigEditor = function(){
    
    var textarea = null;
    var width    = 800;
    var height   = 400;
    if(document.getElementsByTagName('textarea').length){
    	textarea = document.getElementsByTagName('textarea');
    }
    if(textarea){
	    for(i = 0; i < textarea.length; i++){
		    if(textarea[i].className == 'wysiwig_advanced' || textarea[i].className == 'wysiwig_basic'){
		    	if(textarea[i].className == 'wysiwig_basic'){
		    		width    = 500;
		    	    height   = 300;
		    	}
		        oFCKeditor = new FCKeditor( textarea[i].name ) ;
		        oFCKeditor.BasePath	= baseUrl+'/js/fckeditor/' ;
		        oFCKeditor.Width	= width;
		        oFCKeditor.Height	= height;
		        oFCKeditor.Config["CustomConfigurationsPath"] = oFCKeditor.BasePath+"webprivacy_edit.js";
		        oFCKeditor.ToolbarSet = textarea[i].className;
		        oFCKeditor.ReplaceTextarea();
		    }
	    }
	}
}
YAHOO.util.Event.onDOMReady(initWysiwigEditor);

var viewWaiver = {
    header:null,
    width:'600px',
    dialog:null,
    path:null,
    init:function(){
        viewWaiver.dialog = new YAHOO.widget.Dialog(
                                                    'waiver',  
                                                    {   
                                                        width:viewWaiver.width,
                                                        fixedcenter:true, 
                                                        draggable:false, 
                                                        modal:true,
                                                        visible:false,
                                                        constraintoviewport : false,
                                                        close:true
                                                    }
                                                );
                                               
        viewWaiver.dialog.setHeader(viewWaiver.header);
        viewWaiver.dialog.setFooter("");
        viewWaiver.dialog.render();
        getElement('waiver').style.display = 'block';
        viewWaiver.dialog.show();

    },
    
    cancel:function(){
        //loadPage(viewWaiver.path);
        //viewWaiver.dialog.hide();
    	location.href = viewWaiver.path;
    },
    
    submit:function(){
        viewWaiver.dialog.hide();
    }
}

function viewTicket(link){
	var param = "toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=no,copyhistory=no";
	param += ",width=900,height=950";
	print_list = open(link,"View",param);
	return false;
}	

function changeOrders(el,form){
	var pref = el.id;
    var ID = form.elements[pref+'SID[]'];
    if (typeof(ID.length) == 'undefined') ID = new Array(ID);
    for (i = 0; i < ID.length; i++){
          var link = el.href;
          link += '/value/' + form.elements[pref+'Orders['+ID[i].value+']'].value + '/id/'+ID[i].value;
          loadPage(link, 'forSetOrders');
    } 
    return false;   
}  

function changeEventVenueStatus(el){
	url = el.href;
    if(el.innerHTML == 'Active'){
        el.innerHTML = 'Inactive'; 
        el.title = 'Change Venue status to Active';
        el.style.color = 'red';
        url += '/value/0';
    }else{
        el.innerHTML = 'Active'; 
        el.title = 'Change Venue status to Inactive';
        el.style.color = '';
        url += '/value/1';
    } 

    return loadPage(url, 'forChangeStatus');            
}

function checkCheckboxes(containerID, checked)
{
	// here is used jquery!
	$("#"+containerID+" :checkbox").attr("checked", checked);
}