
document.observe('dom:loaded',function(){
 setupCMSLogin();
 //setupSortables();
 //setupEdits();
 /* Preload Images */
 errorimg = new Image(); 
 errorimg.src ="images/cms/error.gif";
});

function setupCMSLogin(){

	loadFooter();

	if(document.all){
		var onkey = 'keyup'; // IE Fix
	}else{
		var onkey = 'keypress';
	}
	Event.observe(document, onkey, function(event){
	//	alert(event.keyCode);
		if(event.keyCode==120){ /* If F9 is Pressed*/
			if($('admin_login')){
				Effect.toggle($('admin_login'),'slide');
			}
			if($('admin_login_area')){
				toggleAdmin();
			}
		}	
	});

}

function loadFooter(){
	var query = document.location.href.split('?')['1'];
	var url = "includes/footer.tpl.php?" + query;
	new Ajax.Updater($$('body')[0], url, {
		method: 'get',
		insertion: Insertion.Bottom,
		onComplete: function(){
			myLightbox.updateImageList();
			setupEdits();
			loadTinyMCEs();
		}
	});
}

function toggleAdmin(){
	if($('admin_login_area').className == 'open'){
		$('admin_login_area').morph({top:'-210px'});
		$('admin_login_area').className = 'closed';
	}else{
		$('admin_login_area').morph({top:'0px'});	
		$('admin_login_area').className = 'open';
	}
}

function setupSortables(){
    var sortables = document.getElementsByClassName('dropable');
    for(i=0;i<sortables.length;i++){
        Sortable.create(sortables[i], {
            /*containment: sortables,*/
            constraint: false,
            tag: 'div',
            only: 'dragable',
            dropOnEmpty: true,
	    zindex: 4000,
            handle: 'handle',
            hoverclass: 'dropable-hover',
				emptyPlaceMarker: 'dropable-helper',
				emptyPlaceMarker_alpha: '0.8',
				starteffect: scrollStart,
				revert: true,
  				endeffect: function(element){
					/* Check if its ok to drop */
					if(dropstatus==true){

					}else{

					//	$('debug').value = 'reject ' + Sortable.options(element).revert;
								
					}
				},
				onMove: function(element){
				/* Check Permissions */
					var sortables = document.getElementsByClassName('dropable');
    				for(n=0;n<sortables.length;n++){
						if(Sortable.serialize(sortables[n])){
							var result = Sortable.serialize(sortables[n]) + '&';
							if(result.indexOf('=' + element.id + '&')){	
								var positionID = result.split(']');
								positionID = positionID[0].replace('[','');
								if((droparea!=positionID)&&(dropchanged==0)){	
									droparea = positionID;
									dropchanged = 1;
									$('emptyPlaceMarker').className = 'dropable-helper';
								}
							}
						}
					}
					if(dropchanged==1){	
						dropchanged = 0;
						new Ajax.Request("includes/ajaxrequest.php",{
							method: 'post',
							parameters: { action: 'check_permissions', positionID: positionID, contentID: element.id },
							onComplete: function(t){
							//	$('debug').value = t.responseText;
								if(t.responseText=='1'){
									dropstatus = true;
									if($('emptyPlaceMarker')){
										if($('emptyPlaceMarker').className == 'dropable-error'){
											$('emptyPlaceMarker').className = 'dropable-helper';
										}
									}	
								}else if(t.responseText=='refresh'){
									window.location.href = window.location.href;
								}else if(t.responseText=='0'){
									dropstatus = false;
									if($('emptyPlaceMarker')){
										if($('emptyPlaceMarker').className == 'dropable-helper'){
											$('emptyPlaceMarker').className = 'dropable-error';
											/* Stop user from dropping on this area */	
										}
									}
								}
							}
						});
					}	
				},
				onChange: function(element){
				
				},				
				onUpdate: function(){
					/* Update Database */
        			var sortables = document.getElementsByClassName('dropable');
    				for(n=0;n<sortables.length;n++){
						if(Sortable.serialize(sortables[n])){
							new Ajax.Request("includes/ajaxrequest.php",{
								method: 'post',
								parameters: { action: 'update_order', order: Sortable.serialize(sortables[n]) },
								onComplete: function(t){
									//alert(t.responseText);
								}
							});
						}
					}	
    			}
        });	
		 var menus = sortables[i].getElementsByClassName('admin_menu');
		 for(n=0;n<menus.length;n++){
			var alinks = menus[n].getElementsByTagName('a');
			for(x=0;x<alinks.length;x++){
				new Effect.Opacity(alinks[x], {duration:0.2, from:1.0, to:0.5});
				alinks[x].onmouseover = function(){
			     new Effect.Opacity(this, {duration:0.2, from:0.5, to:1.0});
				}
				alinks[x].onmouseout = function(){	
				  new Effect.Opacity(this, {duration:0.2, from:1.0, to:0.5});		
				}
				if(alinks[x].className == 'handle'){
					alinks[x].onmousedown = function(){
						/* Style the element for dragging */
						//this.parentNode.parentNode.parentNode.style.background = '#FFFFFF';
						//this.parentNode.parentNode.parentNode.className = 'dragging';
					}
					alinks[x].onmouseup = function(){
						/* Un-style the element for dropping */
						//this.parentNode.parentNode.parentNode.style.background = '';
						//this.parentNode.parentNode.parentNode.className = '';	
					}
				}
			}
	    }
		 var dragables = sortables[i].getElementsByClassName('dragable');
		 for(x=0;x<dragables.length;x++){
            // Setup Delete Button
            dragables[x].getElementsByClassName('deletecontent')[0].onclick = function(){
		var positionID = '';
		var deleteitem = this.parentNode.parentNode.parentNode.id;
		var contentID = deleteitem.split('dragable_')[1];
		deleteContent(positionID,deleteitem,contentID);
            }
	}
    }
}

function deleteContent(positionID,deleteitem,contentID){
	 if(confirm('Are you sure you would like to delete this item?') == true){
	    // Check permissions
	    new Ajax.Request("includes/ajaxrequest.php",{
		method: 'post',
		parameters: { action: 'check_permissions', positionID: positionID, contentID: contentID },
		onComplete: function(t){
		    if(t.responseText=='1'){
			new Ajax.Request("includes/ajaxrequest.php",{
			    method: 'post',
			    parameters: { action: 'delete_item', contentID: contentID },
			    onComplete: function(t){
				new Effect.Fade(deleteitem);
			    }
			});
		    }else if(t.responseText=='refresh'){
			window.location.href = window.location.href;
		    }else if(t.responseText=='0'){
			alert('Unable to delete!');
		    }
		}
	    });
	}
}

function reloadContentSection(positionID,pageID){
	if($('dropable_' + positionID)){
		new Ajax.Updater('dropable_' + positionID,"includes/ajaxrequest.php",{
			method: 'post',
			parameters: { action: 'update_section', positionID: positionID, pageID: pageID },
			onComplete: function(t){
				update_menu_items();
			}
		});
	}
}

function scrollStart(){
	//alert(this.parentNode.innerHTML);
}

function scrollEnd(){
	//alert('ended');
}

function getStyleClass(className){
	if(document.styleSheets.length < 1) {
		return null;
	}
	if(document.styleSheets[0].cssRules) {
		var cssRules = 'cssRules';
	}else{
		var cssRules = 'rules';
	}
	for(var s = 0; s < document.styleSheets.length; s++){
		for(var r = 0; r < document.styleSheets[s][cssRules].length; r++){
			if(document.styleSheets[s][cssRules][r].selectorText == '.' + className){
				return document.styleSheets[s][cssRules][r];
			}
		}
	}
}


/* ============================
Setup Edits
----------------------------- */

function setupEdits(){
	var updatepath = 'includes/ajaxrequest.php';

	// Edit Email Address
	if($('editemail')){
		new Ajax.InPlaceEditor('editemail', updatepath);
	}

	// Edit Password
	if($('editpassword')){
		new Ajax.InPlaceEditor('editpassword', updatepath);
	}
}



/* ============================
TinyMCE Ajax Mods
----------------------------- */

loadTinyMCEs = function(){
	var tinymceTextareas = document.getElementsByClassName('tinymce');
	for(imce=0;imce<tinymceTextareas.length;imce++){
		var eleID = tinymceTextareas[imce].id;	
		activateEditor(eleID);
	}
}

var activeEditors = new Array()

activateEditor = function(id) {
   activeEditors[activeEditors.length] = id;
   toggleEditor(id);
}

deactivateEditors = function() {
    for(x=0;x<activeEditors.length;x++) {
		 if(activeEditors[x]){
			toggleEditor(activeEditors[x]);
		 }
    }
    activeEditors.length = 0;
}

function toggleEditor(id) {
	if (!tinyMCE.get(id))
		tinyMCE.execCommand('mceAddControl', false, id);
	else
		tinyMCE.execCommand('mceRemoveControl', false, id);
}

reactivateEditor = function(id){
	alert('reactivate ' + id);
	toggleEditor(id);
	toggleEditor(id);
}

/* ============================
CMS Save & Publish
----------------------------- */

function save_and_publish(e){
	//alert(e);
	if(document.all){
		$('publish').value = e.alt;
	}else{
		$('publish').value = e.value;
	}
}



maxL=160;
var bName = navigator.appName;
function taLimit(taObj) {
	objVal=taObj.value;
	if (taObj.value.length>=maxL){
		var newmaxL = maxL-1;
		objVal=objVal.substring(0,newmaxL);
		taObj.value = objVal;
		return false;
	}
	return true;
}

function taCount(taObj,Cnt) { 
	objCnt=createObject(Cnt);
	objVal=taObj.value;
	if (objVal.length>maxL) objVal=objVal.substring(0,maxL);
	if (objCnt) {
		if(bName == "Netscape"){	
			objCnt.textContent=maxL-objVal.length;}
		else{objCnt.innerText=maxL-objVal.length;}
	}
	return true;
}

function createObject(objId) {
	if (document.getElementById) return document.getElementById(objId);
	else if (document.layers) return eval("document." + objId);
	else if (document.all) return eval("document.all." + objId);
	else return eval("document." + objId);
}



