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 loadPage(path, contentElementID)
{
	if (getElement('loader')){
		getElement('loader').style.display = 'none';
	    getElement('loaderactive').style.display = 'block';    	
    }

    if (!contentElementID || !getElement(contentElementID)){
    	contentElementID = 'Content';
    }

	function handleSuccess(o)
    {
		setContent(contentElementID, o.responseText);
		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 confirmDeletion(el, content)
{
	if(confirm("Are you sure you want to delete this element?")){
		return loadPage(el.href, content);
	}
	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 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 getControlURL(componentUrl, page, results, sort, direction)
{
	return componentUrl + '/getlist/format/table/page/' + page + '/results/' + results + '/sort/' + sort + '/dir/' + direction;
}


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_template' || textarea[i].className == 'wysiwig_basic'){
		    	if(textarea[i].className == 'wysiwig_basic'){
		    		width    = 350;
		    	    height   = 200;
		    	}
		        oFCKeditor = new FCKeditor( textarea[i].name ) ;
		        oFCKeditor.BasePath	= baseUrl+'/js/fckeditor/' ;
		        oFCKeditor.Width	= width;
		        oFCKeditor.Height	= height;
		        oFCKeditor.Config["CustomConfigurationsPath"] = oFCKeditor.BasePath+"ticket_template_edit.js";
		        oFCKeditor.ToolbarSet = textarea[i].className;
		        oFCKeditor.ReplaceTextarea();
		    }
	    }
	}
}
//YAHOO.util.Event.onDOMReady(initWysiwigEditor);


function windowOpen(element)
{
	var address = document.getElementById(element).value;
	if (address.substring(0,7) != "http://" && address.substring(0,8) != "https://" )
		 address = "http://" + address;
    window.open(address);
}

var viewerImage = {
	    header:null,
	    width:'600px',
	    dialog:null,
	    path:null,
	    init:function(){
	        viewerImage.dialog = new YAHOO.widget.Dialog(
	                                                    'viewerDiv',  
	                                                    {   
	                                                        width:viewerImage.width,
	                                                        fixedcenter:true, 
	                                                        draggable:false, 
	                                                        modal:true,
	                                                        visible:false,
	                                                        constraintoviewport : false,
	                                                        close:false
	                                                    }
	                                                );
	                                               
	        viewerImage.dialog.setHeader(viewerImage.header);
	        viewerImage.dialog.setFooter("");
	        viewerImage.dialog.render();
	        getElement('viewerDiv').style.display = 'block';
	        viewerImage.dialog.show();

	    },
	    
	    cancel:function(){
	        //loadPage(viewerImage.path);
	        //viewerImage.dialog.hide();
	    	location.href = viewerImage.path;
	    },
	    
	    submit:function(){
	        viewerImage.dialog.hide();
	    }
}

function numbersonly(myfield, e, dec){
	var key;
	var keychar;
	
	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;
	keychar = String.fromCharCode(key);
	
	if ((key==null) || (key==0) || (key==8) || 
	    (key==9) || (key==13) || (key==27) )
	   return true;
	
	else if ((("0123456789").indexOf(keychar) > -1))
	   return true;
	
	else if (dec && (("0123456789.").indexOf(keychar) > -1))
	   {
		return true;
	   }
	else
	   return false;
}
