// JavaScript Document
// Client functionality and checks for the Image Manager
//

// adds the HTML for the edit Blog interface
function swap_pic(form_name, field_name, menulist) {
	var pid = menulist[menulist.selectedIndex].value; // selected photo ID

	var url = '/sitebuilder/controlpanel/imagemanager.ajaxsocket.php';
	var send_data = 'do=get_pic_data&pid=' + escape(pid);
	
	request = createRequest();
	request.onreadystatechange=function() {
		if (request.readyState == 4) {
			if (request.status == 200) {
				// replace the image

				var xmlDoc = request.responseXML;
				var img_url = (xmlDoc.getElementsByTagName("path")[0].firstChild.nodeValue);				

				var containerElement = document.getElementById(field_name + '_container');
				var newImage = document.createElement("img");

				//newImage.src = img_url;
				newImage.setAttribute("src", img_url);

		   		var oldImage = containerElement.firstChild;
		   		containerElement.removeChild(oldImage);
		   		containerElement.appendChild(newImage);
			
				// set the necessary fields and checkboxes for this image
				if (pid.charAt(0) == "0") { // public image
					document.getElementById('title_' + field_name).value='';
					document.getElementById('title_' + field_name).disabled = true;
					document.getElementById('resize_' + field_name).value='';
					document.getElementById('resize_' + field_name).disabled = true;
					document.getElementById('caption_' + field_name).value='';
					document.getElementById('caption_' + field_name).disabled = true;
					document.getElementById('bw_' + field_name).checked=false;
					document.getElementById('bw_' + field_name).disabled = true;
					document.getElementById('sep_' + field_name).checked=false;
					document.getElementById('sep_' + field_name).disabled = true;
					document.getElementById('border_style_' + field_name).disabled = true;
					document.getElementById('no_popup_' + field_name).checked=false;
					document.getElementById('no_popup_' + field_name).disabled = true;
				} else {
					var caption = '';
					var width = '';
					var title = '';
									
					if (xmlDoc.getElementsByTagName("captn")[0].firstChild != null) caption = xmlDoc.getElementsByTagName("captn")[0].firstChild.nodeValue;
					if (xmlDoc.getElementsByTagName("title")[0].firstChild != null) title = xmlDoc.getElementsByTagName("title")[0].firstChild.nodeValue;
					if (xmlDoc.getElementsByTagName("width")[0].firstChild != null) width = xmlDoc.getElementsByTagName("width")[0].firstChild.nodeValue;

					document.getElementById('resize_' + field_name).disabled = false;
					document.getElementById('resize_' + field_name).value=width;
					document.getElementById('caption_' + field_name).disabled = false;
					document.getElementById('caption_' + field_name).value=caption;
					document.getElementById('title_' + field_name).disabled = false;
					document.getElementById('title_' + field_name).value=title;
					if (xmlDoc.getElementsByTagName("is_bw")[0].firstChild.nodeValue=='1') document.getElementById('bw_' + field_name).checked=true;
		              else document.getElementById('bw_' + field_name).checked=false;
		 			document.getElementById('bw_' + field_name).disabled = false;
		   			if (xmlDoc.getElementsByTagName("is_sep")[0].firstChild.nodeValue=='1') document.getElementById('sep_' + field_name).checked=true;
		              else document.getElementById('sep_' + field_name).checked=false;
		 			document.getElementById('sep_' + field_name).disabled = false;
					document.getElementById('border_style_' + field_name).disabled = false;
					document.getElementById('border_style_' + field_name).options[xmlDoc.getElementsByTagName("border_style")[0].firstChild.nodeValue].selected=true;
		   			if (xmlDoc.getElementsByTagName("no_popup")[0].firstChild.nodeValue=='1') document.getElementById('no_popup_' + field_name).checked=true;
		              else document.getElementById('no_popup_' + field_name).checked=false;
		 			document.getElementById('no_popup_' + field_name).disabled = false;
					
					// execute PNG fix code for IE versions < 7
					var agent=navigator.userAgent.toLowerCase();
					if (agent.indexOf('msie') != -1) {
						var arVersion = navigator.appVersion.split("MSIE");
						var version = parseFloat(arVersion[1]);
						if ((version >= 5.5) && (version < 7) && (document.body.filters)) {
							var imgID = (newImage.id) ? "id='" + newImage.id + "' " : "";
							var imgClass = (newImage.className) ? "class='" + newImage.className + "' " : "";
							var imgTitle = (newImage.title) ? "title='" + newImage.title  + "' " : "title='" + newImage.alt + "' ";
							var imgStyle = "display:inline-block;" + newImage.style.cssText;
							var strNewHTML = "<span " + imgID + imgClass + imgTitle
										  + " style=\"" + "width:" + newImage.width 
										  + "px; height:" + newImage.height 
										  + "px;" + imgStyle + ";"
										  + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
										  + "(src=\'" + newImage.src + "?" + new Date().getTime() + "\', sizingMethod='scale');\"></span>";
							newImage.outerHTML = strNewHTML	;
						}
					}
				}
			} else {
				alert("Error: Request status is " + request.status);
			}
			
		}
	}

	request.open('POST',url,true);
	request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	request.send(send_data);
}

// starts the graphical progress indicator
function startProgress(container) {
	// start the graphical progress indicator
	var progressicon = top.document.createElement("img");
	progressicon.setAttribute("src", "/images/indicator.gif");
	var container_div = top.document.getElementById(container);
	clearText(container_div);
	container_div.appendChild(progressicon);
}

// pulls the document properties from the TOP document to the photo upload IFRAME hidden variables
function pullPhotoProperties(field_name) {
	document.uploadform.resize.value = top.document.getElementById('resize_' + field_name).value;
	document.uploadform.caption.value = top.document.getElementById('caption_' + field_name).value;
	document.uploadform.title.value = top.document.getElementById('title_' + field_name).value;
	if (top.document.getElementById('no_popup_' + field_name).checked) document.uploadform.no_popup.value = '1';
	   else document.uploadform.no_popup.value = '0';
	if (top.document.getElementById('bw_' + field_name).checked) document.uploadform.bw.value = '1';
	   else document.uploadform.bw.value = '0';
	if (top.document.getElementById('sep_' + field_name).checked) document.uploadform.sep.value = '1';
	   else document.uploadform.sep.value = '0';
	document.uploadform.border_style.value = top.document.getElementById('border_style_' + field_name).options[top.document.getElementById('border_style_' + field_name).selectedIndex].value;
}

// save photo properties from interface
function savePhotoChanges(fieldname, status_container, blog_id, post_id, site_id) {
	startProgress(status_container);
	
	// persist the selected photo id (if any) in a hidden field
	var picmenu = document.getElementById('existingimg_' + fieldname);
	var alignmentmenu = document.getElementById('alignment');
	var persistfield = document.getElementById('post_photo');
	persistfield.value = picmenu.options[picmenu.selectedIndex].value;
	var alignment_persistfield = document.getElementById('post_photo_alignment');
	alignment_persistfield.value = alignmentmenu.options[alignmentmenu.selectedIndex].value;
	
	var pid = document.getElementById('existingimg_' + fieldname).options[document.getElementById('existingimg_' + fieldname).selectedIndex].value;
	if (pid.charAt(0) != "0") { // only save uploaded image properties
		var resize = document.getElementById('resize_' + fieldname).value;
		var caption = document.getElementById('caption_' + fieldname).value;
		var title = document.getElementById('title_' + fieldname).value;
		if (document.getElementById('no_popup_' + fieldname).checked) var no_popup = '1';
	  	 else var no_popup = '0';
		if (document.getElementById('bw_' + fieldname).checked) var bw = '1';
	  	 else var bw = '0';
		if (document.getElementById('sep_' + fieldname).checked) var sep = '1';
	  	 else var sep = '0';
		var border_style = document.getElementById('border_style_' + fieldname).options[document.getElementById('border_style_' + fieldname).selectedIndex].value;
		
		// save the persisted photo and alignment values
		var photo_align = document.getElementById('post_photo_alignment').value;
		 
		var url = '/sitebuilder/controlpanel/imagemanager.ajaxsocket.php';
		var send_data = 'do=save_photo_changes&site_id=' + site_id + '&blog_id=' + blog_id + '&post_id=' + post_id + '&photo_align=' + photo_align + '&pid=' + escape(pid) + '&resize=' + escape(resize) + '&caption=' + escape(caption) + '&title=' + escape(title) + '&no_popup=' + no_popup + '&bw=' + bw + '&sep=' + sep + '&border_style=' + border_style;
		
		request = createRequest();
		request.onreadystatechange=function() {
			if (request.readyState == 4) {
				if (request.status == 200) {
					clearText(status_container);
					var xmlDoc = request.responseXML;
					
					// post feedback
					var msg = (xmlDoc.getElementsByTagName("message")[0].firstChild.nodeValue);
					postTempMessage(status_container, msg, 5);
					
					// swap the photo, to reflect any changes
					var img_url = (xmlDoc.getElementsByTagName("path")[0].firstChild.nodeValue);				
					var containerElement = document.getElementById(fieldname + '_container');
					var newImage = document.createElement("img");
					newImage.setAttribute("src", img_url);
					var oldImage = containerElement.firstChild;
					containerElement.removeChild(oldImage);
					containerElement.appendChild(newImage);
				}
			}
		}
		
		request.open('POST',url,true);
		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		request.send(send_data);

	} else { // public images don't have adjustable properties; just save the selected image and alignment to the post, if any
		clearText(status_container);
		
		var url = '/sitebuilder/controlpanel/imagemanager.ajaxsocket.php';
		var photo_align = document.getElementById('post_photo_alignment').value;
		var send_data = 'do=save_public_photo&site_id=' + site_id + '&blog_id=' + blog_id + '&post_id=' + post_id + '&photo_align=' + photo_align + '&pid=' + pid;
		fetchData(url,send_data,status_container);
	}
}




 