var myAjax = ajax();
function ajax() {
        var ajax = null;
        if (window.XMLHttpRequest) {
                try {
                        ajax = new XMLHttpRequest();
                }
                catch(e) {}
        }
        else if (window.ActiveXObject) {
                try {
                        ajax = new ActiveXObject("Msxm12.XMLHTTP");
                }
                catch (e){
                        try{
                                ajax = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                        catch (e) {}
                }
        }
        return ajax;
}

function request(paramstr) {
	//Don't forget to modify the path according to your theme
        myAjax.open("POST", "/lolquacious/add-submit.php");
        myAjax.onreadystatechange = result;
        myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        myAjax.send(paramstr);
}

function submitfinal_request(paramstr) {
	//send metadata to create new db record+wp post (or return error)
	myAjax.open("POST", "/lolquacious/add-submit-final.php");
	myAjax.onreadystatechange = submitfinal_result;
    myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    myAjax.send(paramstr);
}

function loadexternal(obj,src) {
	//load the output of src into obj.innerHTML
	myAjax.open("GET", src, true);
	myAjax.onreadystatechange=function () {
            loadexternal_result(obj);
        };
	myAjax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	var newDate = new Date;
	myAjax.send('rnd='+newDate.getTime());
}

function loadexternal_result(obj) {
	if (myAjax.readyState==4) {
		var response=myAjax.responseText;
	    obj.innerHTML=response;
		document.getElementById('submitbtn_loading').style.visibility='hidden';
	}
}

function submitfinal_result() {
	if (myAjax.readyState==4) {
		var response = myAjax.responseText;
		document.getElementById('err2').innerHTML=response;
		if (response.substr(0,5).toLowerCase()!='thank') {
			//error, re-enable submit/cancel buttons
			document.getElementById('btn_complete').disabled=false;
			document.getElementById('btn_cancel').disabled=false;
		}
		else {
			document.getElementById('addpicform').style.display='none';	
		}
	}
}

function result() {
        if (myAjax.readyState == 4) {
                var response = myAjax.responseText;
				if (response.substr(0,2)!='99') {
					//Not a valid image link, show error
					document.getElementById('err').innerHTML=response;
					document.getElementById('addurl').value='';
					document.getElementById('addurl').focus();
					document.getElementById('addurl').disabled=false;
					document.getElementById('submitbtn').disabled=false;
					document.getElementById('submitbtn_loading').style.visibility='hidden';
				}
				else {
					//Valid image, display on page
					var returnparams=response.split(",");
					var width=returnparams[1];
					var height=returnparams[2];
					var ratio=width/height;
					//if image wider than set width, reduce to max width proportionally
					if (width>320) {
						var newWidth=320;
						var newHeight=newWidth/ratio;
						width=newWidth;
						height=newHeight;
					}
	
					//if image is taller than set height, reduce to set height proportionally
					if (height>240) {
						var newHeight=240;
						var newWidth=newHeight*ratio;
						width=newWidth;
						height=newHeight;
					}
					document.getElementById('addpic').src=picurl;
					document.getElementById('addpic').width=width;
					document.getElementById('addpic').height=height;
					
					if (returnparams[3]=='dupe-active') {
						document.getElementById('err').innerHTML="We already have this picture <a href='/"+returnparams[4]+"/'>here</a>";
						document.getElementById('addurl').value='';
						document.getElementById('addurl').focus();
						document.getElementById('addurl').disabled=false;
						document.getElementById('submitbtn').disabled=false;
						document.getElementById('submitbtn_loading').style.visibility='hidden';
					}
					if (returnparams[3]=='dupe-disabled') {
						document.getElementById('err').innerHTML="This picture has been submitted before, but we decided not to include it.";
						document.getElementById('addurl').value='';
						document.getElementById('addurl').focus();
						document.getElementById('addurl').disabled=false;
						document.getElementById('submitbtn').disabled=false;
						document.getElementById('submitbtn_loading').style.visibility='hidden';
					}
					if (returnparams[3]=='0') {
						document.getElementById('err').innerHTML="";	
						//load metadata form and display
						loadexternal(document.getElementById('addpicform'),'/lolquacious/add-submit-form.php');
						document.getElementById('addpicform').style.visibility='visible';
					}
				}
				//document.getElementById('submitbtn_loading').style.visibility='hidden';
				//setTimeout("document.getElementById('err').innerHTML=''",8500);
        }
}

function resetpage() {
//resset form to initial state
	window.location="/add";
//	document.getElementById('addurl').value="";
//	document.getElementById('addurl').disabled=false;
//	document.getElementById('submitbtn').disabled=false;
//	document.getElementById('addpicform').innerHTML="&nbsp;";
//	document.getElementById('addpic').src='/lolquacious/images/blank.jpg';
//	document.getElementById('addpic').width=320;
//	document.getElementById('addpic').height=240;	
}

function submitpic() {
	document.getElementById('submitbtn').disabled=true;
	document.getElementById('addurl').disabled=true;
	document.getElementById('submitbtn_loading').style.visibility='visible';
	picurl=document.getElementById('addurl').value;
	var paramstr="";
	paramstr="url="+escape(picurl);
	request(paramstr);
	
}

function limitText(limitField, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } 
	chars=limitNum-limitField.value.length;
	document.getElementById('charcount').value=chars;
}

function submitfinal() {
	document.getElementById('btn_complete').disabled=true;
	document.getElementById('btn_cancel').disabled=true;
	document.getElementById('err2').innerHTML="<img style='border: none; background-color: #FFF;' src='/lolquacious/images/ajax-loader.gif' />";
	//build parameter string to send to add-submit-final via ajax
	var paramstr="";
	paramstr="url="+escape(document.getElementById('addurl').value);
	paramstr+="&lolusage="+escape(document.getElementById('lolusage').value);
	
	//iterate through checkboxes and build comma-separated tag list
	var tags=[];
	for(var i=0; i < document.forms['scratch_form'].elements.length; i++){
		if (document.forms['scratch_form'].elements[i].id.substr(0,11)=='scratch_tag') {
			if (document.forms['scratch_form'].elements[i].checked) {
				tags.push(document.forms['scratch_form'].elements[i].id.substr(12,document.forms['scratch_form'].elements[i].id.length));
			}
		}
	}	
	
	if (tags.length>0) {
		paramstr+="&tags="+tags.join(",");	
	}
	submitfinal_request(paramstr);
}
