﻿function $m(theVar){
	return document.getElementById(theVar)
}
function remove(theVar){
	var theParent = theVar.parentNode;
	theParent.removeChild(theVar);
}
function addEvent(obj, evType, fn){
	if(obj.addEventListener)
	    obj.addEventListener(evType, fn, true)
	if(obj.attachEvent)
	    obj.attachEvent("on"+evType, fn)
}
function removeEvent(obj, type, fn){
	if(obj.detachEvent){
		obj.detachEvent('on'+type, fn);
	}else{
		obj.removeEventListener(type, fn, false);
	}
}
function isWebKit(){
	return RegExp(" AppleWebKit/").test(navigator.userAgent);
}
function ajaxUpload(form, url_action, id_element, id_hidden, id_error, image_folder) {
	var detectWebKit = isWebKit();
	form = typeof(form)=="string"?$m(form):form;
	var erro="";
	if(form==null || typeof(form)=="undefined"){
		erro += "The form of 1st parameter does not exists.\n";
	}else if(form.nodeName.toLowerCase()!="form"){
		erro += "The form of 1st parameter its not a form.\n";
	}
	if($m(id_element)==null){
		erro += "The element of 3rd parameter does not exists.\n";
	}
	if(erro.length>0){
		alert("Error in call ajaxUpload:\n" + erro);
		return;
	}
	if (image_folder) {
	    url_action += "?ImageFolder=" + image_folder;
	}
	var iframe = document.createElement("iframe");
	iframe.setAttribute("id","ajax-temp");
	iframe.setAttribute("name","ajax-temp");
	iframe.setAttribute("width","0");
	iframe.setAttribute("height","0");
	iframe.setAttribute("border","0");
	iframe.setAttribute("style","width: 0; height: 0; border: none;");
	form.parentNode.appendChild(iframe);
	window.frames['ajax-temp'].name="ajax-temp";
	var doUpload = function(){
		removeEvent($m('ajax-temp'),"load", doUpload);
		var cross = "javascript: ";
		cross += "if (document.body.innerHTML.indexOf('Error')==0) {"
		cross += "  window.parent.$m('"+id_error+"').style.display = 'block';"
		cross += "  window.parent.$m('"+id_element+"').style.display = 'none';"
		cross += "  window.parent.$m('"+id_error+"').innerHTML = '<img src=\"Images/error.gif\" /><span class=\"imageError\">' + document.body.innerHTML + '</span>';"
		cross += "  window.parent.$m('"+id_hidden+"').value = ''; }"
		cross += "else {"
		cross += "  window.parent.$m('"+id_error+"').style.display = 'none';"
		cross += "  window.parent.$m('"+id_element+"').style.display = 'block';"
		cross += "  window.parent.$m('"+id_element+"').src = '"+image_folder+"' + document.body.innerHTML; "
		cross += "  window.parent.$m('"+id_hidden+"').value = document.body.innerHTML;"
		cross += "}"
		cross += "window.parent.$m('imageLoading').style.display = 'none';"
		cross += "void(0);";
		form.setAttribute("action",currentAction);
		form.setAttribute("target","");
		form.setAttribute("enctype","application/x-www-form-urlencoded");
		form.setAttribute("encoding","application/x-www-form-urlencoded");
		//$m(id_element).innerHTML = html_error_http;
		$m('ajax-temp').src = cross;
		if(detectWebKit){
        	remove($m('ajax-temp'));
        }else{
        	setTimeout(function(){ remove($m('ajax-temp'))}, 250);
        }
    }
	addEvent($m('ajax-temp'),"load", doUpload);
	var currentAction = form.getAttribute("action");
	form.setAttribute("target","ajax-temp");
	form.setAttribute("action",url_action);
	form.setAttribute("method","post");
	form.setAttribute("enctype","multipart/form-data");
	form.setAttribute("encoding","multipart/form-data");
	$m(id_element).src="";
	$m(id_element).style.display="none";
	$m(id_element).style.visibility="hidden";
	$m("imageLoading").style.display="block";
	form.submit();
}

function changeImage(list,id_element,id_hidden,id_title,image_folder,image_class)
{
    var image_filename = list.options[list.selectedIndex].value;
    var image_title = list.options[list.selectedIndex].text;
    document.getElementById(id_hidden).value = image_title;
    document.getElementById(id_title).innerText = image_title;
	var objImage = document.getElementById(id_element);
	objImage.src = image_folder+image_filename;

//	imgPreload = new Image();

//	imgPreload.onload=function(){
//		objImage.src = image_folder+image_filename;
//        var width = objImage.parentNode.offsetWidth;
//        var height = objImage.parentNode.offsetHeight;
//        var screenRatio = height / width;
//        imageRatio = imgPreload.height / imgPreload.width;  
//        if (screenRatio < imageRatio) {
//                objImage.style.height = height + 'px';
//                objImage.style.width = null; }
//        else {
//               objImage.style.width = width + 'px';
//               objImage.style.height = null; }    
//    	return false;
//	}

//	imgPreload.src = image_folder+image_filename;
}

function resizeImage(id_element)
{
	var objImage = document.getElementById(id_element);
    var image_filename = objImage.src;
    
	imgPreload = new Image();
	imgPreload.onload=function(){
        var width = objImage.parentNode.offsetWidth;
        var height = objImage.parentNode.offsetHeight;
        var screenRatio = height / width;
        imageRatio = imgPreload.height / imgPreload.width;  
        if (screenRatio < imageRatio) {
                objImage.style.height = height + 'px';
                objImage.style.width = null; }
        else {
               objImage.style.width = width + 'px';
               objImage.style.height = null; } 
        objImage.style.display="block";   
        objImage.style.visibility = "visible";
    	document.getElementById("imageLoading").style.display="none";
        return false;
	}
	imgPreload.src = image_filename;

}

