
Event.observe(window,'load',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, // Removed - not allowing array
            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(){
                if(confirm('Are you sure you would like to delete this item?') == true){
                    // Check permissions
                    var positionID = '';
                    var deleteitem = this.parentNode.parentNode.parentNode.id;
                    var contentID = deleteitem.split('dragable_')[1];
                    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 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,'0');
}

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

function toggleEditor(id,action) {
	 if(action==1){
        tinyMCE.execCommand('mceRemoveControl', false, id);
	 }else{
	    if (tinyMCE.getInstanceById(id) == null){
	        tinyMCE.execCommand('mceAddControl', false, id);
	    }else{
	        tinyMCE.execCommand('mceRemoveControl', false, id);
		 }
	}
}

reactivateEditor = function(id){
	alert('reactivate ' + id);
	toggleEditor(id,"1");
	toggleEditor(id,"0");
}

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

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





