//load javascript content
AddJSFileDOM('cms/js/htmlarea.js');
AddJSFileDOM('cms/ddt/ddt.js');
AddJSFileDOM('cms/js/photoclip.js');
AddJSFileDOM('cms/js/dialog.js');
//load stylesheet content
var oLink = document.createElement("link")
oLink.href = "cms/CMS.css";
oLink.rel = "stylesheet";
oLink.type = "text/css";
document.body.appendChild(oLink);
var _editor_url = "cms";
var _editor_lang= "en";


var areaedit_plugins_minimal =
[
    'ContextMenu',
//    'Linker',
    'ImageManager'
];
                                                 
var area_config;
var startupDDT;
var loadFlag;


if (loadFlag != "done"){
    setTimeout('delayed()', 800);
}

function delayed(){
document.body.innerHTML+="<div id='CMS'></div>"
		//appendManualEdit()
    createImgEditDivs(); //+createTxtEditDivs();
    document.getElementById('CMS').innerHTML="<iframe name='loader' width='0px' height='0px' frameborder='0' src='cms/contentloader.php?loc="+location.href+"' />";
    loadFlag="done";
}

var areaedit_editors;

//if (!window.CMS_pagename){
//    alert("variable window.CMS_pagename is undefined for this page");
//}
//else {
//    document.getElementById('CMS').innerHTML="<iframe name='loader' width='0px' height='0px' frameborder='0' src='cms/contentloader.php?loc="+location.href+"' />";
//    //loader.src='contentloader.php';
//}

function editpanebyid(objid){
    editpane(document.getElementById(objid));
}

var loopbackparentObj;

function editpaneloopback(){
    editpane(loopbackparentObj);
}

function editpane(parentObj){
    loopbackparentObj = parentObj;
    var target = document.getElementById(parentObj.id);
    var content = target.innerHTML;
    var color = target.style.background-color;
    //alert(color);
    content = content.replace('\n', '', 'g');
    //content = content.substring(content.indexOf("edit </div>")+11);
    var rexExp = new RegExp("<a.*edit[ ]*</div></a>","i");
    var content_new = content.replace(rexExp, '');
    content = content_new;
//    content = content.substring(content.indexOf("_-_-_removefromhere_-_-_")+23);
    var POS = findPos(target);
    var pPos = "style='width:"+target.offsetWidth+"px;height:"+target.offsetHeight+"px;left:"+POS[0]+"px;top:"+POS[1]+"px;'";
    //define control buttons
    var boldbtn = "<img onClick='javascript:formatting(\"bold\")' src='cms/images/ed_format_bold.gif' border=0/>";
    var italicbtn = "<img onClick='javascript:formatting(\"italic\")' src='cms/images/ed_format_italic.gif' border=0/>";
    var underlinebtn = "<img onClick='javascript:formatting(\"underline\")' src='cms/images/ed_format_underline.gif' border=0/>";
    var imagebtn = "<img onClick='javascript:formatting(\"image\")' src='cms/images/ed_image.gif' border=0/>";
    var linkbtn = "<img onClick='javascript:formatting(\"createlink\")' src='cms/images/ed_link.gif' border=0/>";
    var just_lbtn = "<img onClick='javascript:formatting(\"justifyleft\")' src='cms/images/ed_align_left.gif' border=0/>";
    var just_mbtn = "<img onClick='javascript:formatting(\"justifycenter\")' src='cms/images/ed_align_center.gif' border=0/>";
    var just_rbtn = "<img onClick='javascript:formatting(\"justifyright\")' src='cms/images/ed_align_right.gif' border=0/>";
    var docHeight = (document.height || document.body.offsetHeight) + 80;
    var controls="";//<div class='centre'>"+boldbtn+italicbtn+underlinebtn+just_lbtn+just_mbtn+just_rbtn+imagebtn+linkbtn+"</div>";
    var pane="<div id='fullpane' style='height:"
		+ docHeight
		+"px; overflow:show;'>"+controls+"</div>";
    area_config = new HTMLArea.Config();
    area_config.width = target.scrollWidth;
    area_config.height = target.scrollHeight + 80;//getElementHeight(target); /
    
    document.body.innerHTML+="<!--editmode-->"+pane;
    var savebtn = "<a class='CMSedit' style='z-Index:210' href='#'><div onClick='javascript:clearEditDisplay(true)' class='CMSedit' style='z-Index:210'>save</div></a>";
    var cancbtn = "<a style='left:25px;' class='CMSedit' href='#'><div onClick='javascript:clearEditDisplay(false)' class='CMSedit'>cancel</div></a>";

    var textbox = "<div id='textbox' "
			+pPos
			+" >"
			+savebtn
			+cancbtn
			+"<form id='CMStxt' method='POST' action='cms/contentupdater.php' target='loader'>"
			+"<textarea style='border:0px;' id='textarea' name='textarea'>"
			+content
			+"</textarea>"
			+"<input type=hidden name='divname' value='"+parentObj.id+"'>"
			+"<input type=hidden name='loc' value='"+location.href+"'>"
			+"</form></div>";
    document.body.innerHTML+=textbox;
    //document.getElementById('fullpane').innerHTML=textbox;
    initHTMLArea();
}

function initHTMLArea(){
    if ( HTMLArea.is_ie && document.readyState != "complete" )
    {
	setTimeout( function() { initHTMLArea()}, 50 );
	return false;
    }
    HTMLArea.init();
    if (!HTMLArea.loadPlugins(areaedit_plugins_minimal, initHTMLArea))
	{
	return;
	}
    startupDDT = new DDT("startup");
    //startupDDT._ddtOn();
    areaedit_editors = ['textarea'];
    //area_config = new HTMLArea.Config();
    areaedit_editors = HTMLArea.makeEditors(areaedit_editors, area_config, areaedit_plugins_minimal);
    HTMLArea.startEditors(areaedit_editors);
}

function clearEditDisplay(doUpdate){
    if (doUpdate){
	document.getElementById('CMS').innerHTML="<iframe name='loader' width='0px' height='0px' frameborder='0' />";
	var form = document.getElementById('CMStxt')
	form.onsubmit();
	form.submit();
    }
    else{
    document.getElementById('CMS').innerHTML="";
    //document.getElementById('CMS').innerHTML="<iframe name='loader' width=0px; height=0px; frameborder=0 src=\"cms/contentloader.php\"/>";
    var current = document.body.innerHTML;
    var EMloc = current.indexOf("<!--editmode-->");
    if (EMloc > 0){
        document.body.innerHTML = current.substring(0, EMloc) //strip edit mode stuff
	}
    }
}

function formatting(cmdId){
    for (var i in areaedit_editors){
	areaedit_editors[i].execCommand(cmdId);
    }
}

function createTxtEditDivs(){
    var retString = "";
    var txtElArray = getElementsByClass('cmstext');
    for(i=0;i<txtElArray.length;i++){
	var ipos = findPos(txtElArray[i]);
	//retString += "<div style='position:absolute;top:"+ipos[1]+";left:"+ipos[0]+";background:red;'>found image here</div>";
	var left = ipos[0]-6;
	var top = ipos[1]-6;
	alert(txtElArray[i].id);
	retString += "<a href=#><div onClick='javascript:editpane(document.getElementById(\""+txtElArray[i].id+"\"))'  class='CMSedit' style='position:absolute;top:"+top+"px;left:"+left+"px;'>change</div></a>";
    }
    return retString;
}

function createImgEditDivs(){
    var retString = "";
    var imgElArray = getElementsByClass('imgcms', document, 'img');
    for(i=0;i<imgElArray.length;i++){
	var ipos = findPos(imgElArray[i]);
	//retString += "<div style='position:absolute;top:"+ipos[1]+";left:"+ipos[0]+";background:red;'>found image here</div>";
	var left = 0;//ipos[0]-6;
	var top = 0;//ipos[1]-6;
	//alert(imgElArray[i].id);

	var Btn = document.createElement("a");
	Btn["classname"]="CMSeditRel";
	Btn.href="#";
	
	var Drawit= document.createElement("div");
	Drawit.onClick="javascript:editPhoto('"+imgElArray[i].id+"')";
	//Drawit.style.position="style='position:absolute;top:"+top+"px;left:"+left+"px;";
	Drawit["className"]="CMSedit";
	DrawitStr=document.createTextNode("change");
	Drawit.appendChild(DrawitStr);
	
	var divStr="<div onClick='javascript:editPhoto(\""+imgElArray[i].id+ "\")'  class='CMSedit' style='position:relative; width:36px; top:5px; left:0px; overflow:visible'>change</div>";
	var divC=document.createTextNode(Drawit);
	Btn.innerHTML = divStr;
	//Btn.appendChild(divC);
	
	imgElArray[i].parentNode.insertBefore(Btn, imgElArray[i]);
	//alert(imgElArray[i].parentNode.innerHTML);
	//retString += "<a href=#><div onClick='javascript:editPhoto("+imgElArray[i].id+")'  class='CMSedit' style='position:absolute;top:"+top+"px;left:"+left+"px;'>change</div></a>";
    }
    return ""; //retString;
}

function editPhoto(imgObjId){
    var imgObj = document.getElementById(imgObjId);
    var loc = findPos(imgObjId);
    //create post form for file
    var vloc = (document.all)?document.body.scrollTop:window.pageYOffset + 100;

    var ScrollTop = document.body.scrollTop;
    if (ScrollTop == 0)
    {
	if (window.pageYOffset)
	    ScrollTop = window.pageYOffset;
        else
    	    ScrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
    }
    vloc = ScrollTop + 100;
    var closebtn = "<a style='left:25px;' class='CMSedit' href='#'><div onClick='javascript:clearEditDisplay(false)' class='CMSedit'>close</div></a>";
    var imageform = "<div id='imagemanager' style='top:" + vloc +"px;'>"+closebtn+"loading...</div>";
    var pane="<div id='fullpane' style='height:"
		+document.body.scrollHeight
		+"px;'></div>";
    document.body.innerHTML+="<!--editmode-->"+imageform+pane;
    document.getElementById('CMS').innerHTML="<iframe name='loader' width='0px' height='0px' frameborder='0' src='cms/imagelist.php?imgId="+imgObjId.id+"&loc="+location.href+"' />";
    loader.location.href="cms/imagelist.php";
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function getElementsByClass(searchClass,node,tag) {
    var classElements = new Array();
    if ( node == null )
    node = document;
    if ( tag == null )
    tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\\\s)"+searchClass+"(\\\\s|$)");
    for (i = 0, j = 0; i < elsLen; i++) {
	if ( pattern.test(els[i].className) ) {
	    classElements[j] = els[i];
	    j++;
        }
    }
    return classElements;
}

function appendManualEdit(){
    var manualPane="<div style='position:absolute; top:0; left:0;'><input onChange='javascript:editpanebyid(this.value)' name='manual' id='manual' type='text'/><a href='javascript:editpanebyid(document.getElementById(\"manual\").value'>go</a></div>";
    document.body.innerHTML+=manualPane;
}

function addRepeater(divname, position){
    var divObj = document.getElementById(divname);
    var searching = true;
    var parentID = "";
    while (searching){
	if(divObj.parentNode){
	    if(divObj.parentNode['className']){
		searching = false;
		if (divObj.parentNode['className'].indexOf('repeater') == -1){
	    	    divObj = divObj.parentNode;
	    	}
	    	else{
		    parentID = divObj.parentNode.id;
		    searching = false;
		    var theInner = document.createElement("div");
		    theInner.appendChild(divObj.cloneNode(true));
		    var strsegment = theInner.innerHTML;
		    var i=1;
		    var repeaterHTML = divObj.parentNode.innerHTML;
		    while (repeaterHTML.indexOf(divname+"__REPEATER__"+i)  > 0) i++;
		    while (i <= position){
			//add the node 
			var targetNode = document.getElementById(parentID);
			var t_content = targetNode.innerHTML;
			var strsegment2 = strsegment.replace('id="'+divname+'"','id="'+divname+'__REPEATER__'+i+'"');
			targetNode.innerHTML = t_content.replace(strsegment, strsegment + strsegment2);
			i++;
		    }
		}
		    
		    
		//removed section begins    
		    
	//	if (false){    
    	//	    var divObj2 = divObj.cloneNode(true);
	//	    var repeaterHTML = divObj.parentNode.innerHTML;
	//	    var i=1;
	//	    while (repeaterHTML.indexOf(divname+"__REPEATER__"+i)  > 0) i++;
	//	    //if (i>1) divObj = document.getElementById(divname+(i-1));
	//	    if (i< position){
	//		alert(divObj2.innerHTML);
	//		var subcontnt = divObj2.innerHTML;
	//		if(divObj2.id == divname){
	//		    divObj2.id = divname+i;
	//		divObj.parentNode.insertBefore(divObj2, divObj.nextSibling); 
	//		}
	//	    else {
	//	        var subcontnt = divObj2.innerHTML;
	//	        subcontnt = subcontnt.replace('id="'+divname+'"','id="'+divname+i+'"');
	//	        alert("1  "+subcontnt);
	//		    //divObj2.innerHTML = "";
	//		    //var theInner = document.createHTMLNode(subcontnt);
	//		    //divObj2.appendChild(theInner)
	//		    divObj.parentNode.insertBefore(divObj2, divObj.nextSibling); 
	//		}
	//		//divObj2.innerHTML = divObj2.innerHTML.replace("'"+divname+"'","'"+divname+i+"'");
	//		divObj2.innerHTML = subcontnt + divname+i;
	//		alert("end" + divObj.parentNode.innerHTML);
	//	    }
	//	    //alert(divObj.parentNode.innerHTML);
	//    	}
	    	
	    	//remoced section ends
	    	
	    }
	    else divObj = divObj.parentNode;
	}
	else searching = false;
    }
}

function getElementHeight(Elem) {
	if (ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.height;
	} else {
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (op5) { 
			xPos = elem.style.pixelHeight;
		} else {
			xPos = elem.offsetHeight;
		}
		return xPos;
	} 
}

function getElementWidth(Elem) {
	if (ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.width;
	} else {
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (op5) {
			xPos = elem.style.pixelWidth;
		} else {
			xPos = elem.offsetWidth;
		}
		return xPos;
	}
}

function copy(s){
for (p in s)
this[p] = (typeof(s[p])=='object')? new copy(s[p]):s[p];
}

function appendAfter(nodeId, newNode){
    var node = document.getElementById(nodeId);
    alert(node.innerHTML);
    //var newNode = makeNode(str);
    if (node.parentNode){
	node.parentNode.insertBefore(newNode, node.nextSibling);
    }
    else{
	node.parentNode.appendChild(newNode);
    }
}

function suppressOriginalRepeater(divname){
    var elm = document.getElementById(divname);
    elm.style.display="none";
    //elm.parentNode.removeChild(elm);
}

function AddJSFile(jsFile){
    document.write('<script type="text/javascript" src="' + jsFile + '"></script>');
}

function AddJSFileDOM(jsFile){
    var oJS = document.createElement("script");
    oJS.src = jsFile;
    oJS.type = "text/javascript";
    document.getElementsByTagName("head")[0].appendChild(oJS);
}