function checkUploadForm() {     	
	
	var ThisForm = document.item_upload;	
	saveTinyMCEVal();//add description to tinyMCE	
	
	if (ThisForm.Title.value.length < 8){
		alert('Title must be longer than 8 characters');
		ThisForm.Title.focus();
		return false;
	   }
	if (ThisForm.Descriptions.value.length < 10 || ThisForm.Descriptions.value.length > 5000){
		alert('Description must be at least 10 and up to 5000 characters long');
		try{if(ThisForm.Descriptions){ ThisForm.Descriptions.focus(); }}catch(e){}//tinyMCE focus
		return false;
	   }
	if (ThisForm.ItemLink.value != "" && isUrl(ThisForm.ItemLink.value)==false){
		alert("incorrect URL in Link To Your Website field.\nCorrect format is http://www.mywebsite.com");
		ThisForm.ItemLink.focus();
		return false;
	   }    
	if(document.getElementById("rowSalePrice").style.display != "none"){
		if (ThisForm.Price.value == ""){
			alert('Price is required! Use correct format such as 1.99 (decimal number only)!');
			ThisForm.Price.focus();
			return false;
		   }
		if (ThisForm.SH.value == ""){
			alert('Shipping & Handling is required! Enter 0.00 if none (decimal number only)!');
			ThisForm.SH.focus();
			return false;
		   }
		if (ThisForm.Quantity.value == "" || isNaN(ThisForm.Quantity.value) == true){
			alert('Quantity is required! Enter a number!');
			ThisForm.Quantity.focus();
			return false;
		   }
		if (ThisForm.PaymentLink.value.length >3 && isUrl(ThisForm.PaymentLink.value)==false){
			alert("incorrect URL in Payment Link field");
			ThisForm.PaymentLink.focus();
			return false;
		   } 
		if (ThisForm.PaymentInstr.length > 100){
			alert('Payment Instructions must be less than 100 characters!');
			ThisForm.PaymentInstr.focus();
			return false;
		   }
	}  
	if (ThisForm.ItemExp.value == ""){
		alert('Expiration is required! Enter the date!');
		ThisForm.ItemExp.focus();
		return false;
	   }
	
	
	for (var i=1;i<=3;i++) {
		if (ThisForm.elements["File"+i]) {
		  var fileName = ThisForm.elements["File"+i].value;
		  if (fileName && !isImage(fileName)) { // if filled in but not ok
			alert('You selected '+fileName+
			  ' file; please select a .jpg or .gif or .jpeg file instead!');
			return false;
		  }
		}
	  }
	  
	  disableUploadBtns(true);
	 //ENABLE LINE BELOW FOR TINYMCE FORM SUBMISSION: 
	 
		/*var str = '';
        var elem = ThisForm.elements;
        for(var i = 0; i < elem.length; i++)
        {
            str += elem[i].type + "| " +  elem[i].name + " = " + elem[i].value + "\n";
        } 
        alert(str);*/

	 
	 ThisForm.submit();//tinyMCE fix for IE6 which does not submit form
  return false;
}

function disableUploadBtns(bool){
	//var uploadFormBtns = document.getElementById("uploadFormBtns");
	var uploadProgressDiv = document.getElementById("uploadProgressDiv");
	var btnSubmit = document.getElementById("submitUploadForm");
	var btnReset  = document.getElementById("resetUploadForm");
	if(uploadProgressDiv && btnSubmit && btnReset){
		if(bool==true){
		  btnSubmit.disabled = true;
		  btnReset.disabled = true;
		  uploadProgressDiv.innerHTML = "<br><br>Please, wait! Uploading data...<br><img border='0' src='../images/pleasewait.gif'>";		
		}else if(bool==false){
		  btnSubmit.disabled = false;
		  btnReset.disabled = false;
		  if(uploadProgressDiv){uploadProgressDiv.innerHTML="";}
		}  
		  
	}
	
}

function checkExt(x) {
  var ext = x.value;
  ext = ext.substring(ext.length-4,ext.length);
  ext = ext.toLowerCase();
  if(ext != '' && ext != '.jpg' && ext != '.gif' && ext != 'jpeg') {
    alert('You selected '+ext+
          ' file; please select a .jpg or .gif or .jpeg file instead!');	
	x.select();
    return false; }
  else
    return true; 
}

function isImage(str) {
  if (!str) return false; // null or empty
  var dotPos = str.lastIndexOf('.');
  if (dotPos == -1) return false; // no dots
  var extension = str.substring(dotPos).toLowerCase();
  return '.jpg.gif.jpeg'.indexOf(extension) !=-1;
}


Number.prototype.toDecimals=function(n){
    n=(isNaN(n))?
        2:
        n;
    var
        nT=Math.pow(10,n);
    function pad(s){
            s=s||'.';
            return (s.length>n)?
                s:
                pad(s+'0');
    }
    return (isNaN(this))?
        this:
        (new String(
            Math.round(this*nT)/nT
        )).replace(/(\.\d*)?$/,pad);
}

function converToDecimals(){
	var price = document.item_upload.Price;
	var priceVal = parseFloat(price.value);
	if(priceVal!=""  && isNaN(priceVal)==false){
		var newPrice = priceVal.toDecimals(2);
		price.value = newPrice;
	}else{
		alert("The price is not correct! Use correct format such as 1.99 (decimal number only)!");
		price.focus();
		price.select();
		return false;
	}
return true;
}


maxKeys = 5000;
var IE = (document.all) ? 1 : 0;
var DOM = 0; 
if (parseInt(navigator.appVersion) >=5) {DOM=1};

function showCharCount( txt2show ) {      
	if (DOM) {
		var viewer = document.getElementById("showCharCounter");
        viewer.innerHTML=txt2show;
    }else if(IE) {
        document.all["showCharCounter"].innerHTML=txt2show;
    }
}

function countChars(what) 
{
  var str = new String(what.value);
  var len = str.length;
  var showstr = len + " characters of " + maxKeys + " entered";
  if (len > maxKeys) alert("Maximum "+maxKeys+" characters allowed, please revise Description field.");
  showCharCount( showstr );
}


/*function checkURL(val){
	if(isUrl(val)==true){
		return true;
	}
	if(isUrl(val)==false){
		alert("incorrect URL");
		return false;
	}
}*/

function isUrl(s) {
	var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
	return regexp.test(s);
}

function clearImgViewDeleteLinks(){
	var imgViewDelete1 = document.getElementById("imgViewDelete1");
	var imgViewDelete2 = document.getElementById("imgViewDelete2");
	var imgViewDelete3 = document.getElementById("imgViewDelete3");
	if(imgViewDelete1){imgViewDelete1.innerHTML="";}
	if(imgViewDelete2){imgViewDelete2.innerHTML="";}
	if(imgViewDelete3){imgViewDelete3.innerHTML="";}
}

function editItemById(itemId){
	editItemId=itemId;
	showAuthContent("pg=upload");  
	document.item_upload.reset();
	clearImgViewDeleteLinks();
	document.getElementById("selectedCategory").innerHTML = "<img src='../images/pleasewait.gif'>";//show progress in category line
	//disable all form fields
	var numberElements = document.item_upload.elements.length;
	for(var i=0; i<numberElements; i++){
		document.item_upload.elements[i].disabled = true;
		if(document.item_upload.elements[i].type!="submit" && document.item_upload.elements[i].type!="reset"
		   && document.item_upload.elements[i].name!="Location")
			document.item_upload.elements[i].value = "";
	}
	var loader = new xhr.ContentLoader("GET","/content/manage/edit_item_xml.asp?itemid="+itemId,true,editItemByIdHandler);
} 
var tinyMCEDescriptionContainer = ""//test//////////////////////
function editItemByIdHandler(){
	//editItemId = null;
	var form = document.item_upload;
	//enable form els
	var numberElements = form.elements.length;
	for(var i=0; i<numberElements; i++){
	if(form.elements[i].name!="Location")form.elements[i].disabled = false;
	}
	
	var doc = this.req.responseXML.documentElement;
	
	var selectedCategoryDiv = document.getElementById("selectedCategory");
	if(selectedCategoryDiv){
		try{
			selectedCategoryDiv.innerHTML = (doc.getElementsByTagName("CatName")[0].firstChild) ?
															doc.getElementsByTagName("CatName")[0].firstChild.nodeValue : ""; //hide progress
		}catch(err){ selectedCategoryDiv.innerHTML = ""; }
	}
		
	
	//category rows to hide
	try{
		var catType = (doc.getElementsByTagName("CatType")[0].firstChild) ?
					   doc.getElementsByTagName("CatType")[0].firstChild.nodeValue : "";
		showHideUploadFormRowsByCatType(catType);
	}catch(err){}
	
	var uploadElsArr = new Array("AccID","Email","ItemID","Title","Descriptions","CatID","ItemDate","ItemLink","Quantity",
								 "PaymentLink","PaymentInstr","PaypalEmailID","RedirectionLink","Price","SH","Tax","Insurance",
								 "ItemExp","City","State","Country","SoldOn");
	
	for(var i=0; i<uploadElsArr.length; i++){
		var el = uploadElsArr[i];
		var formEl = document.getElementById(el);//alert(formEl+" "+doc.getElementsByTagName(el)[0].firstChild+" "+el)
		try{
			if(formEl && doc.getElementsByTagName(el)[0].firstChild){			
					formEl.value = doc.getElementsByTagName(el)[0].firstChild.nodeValue;
					if(el=="Descriptions"/* [20071121] &&document.title.indexOf("Account Management: vunet")>=0*/){//TinyMCE
						try{
							setTinyMCEVal(doc.getElementsByTagName(el)[0].firstChild.nodeValue);//alert("val")
						}catch(e){//IE6 does not set HTML, so delay it
							tinyMCEDescriptionContainer = doc.getElementsByTagName(el)[0].firstChild.nodeValue;
							setTimeout('delaySetTinyMCEVal()',2000);
						}
					}
					if(el=="ItemExp"){
						if(doc.getElementsByTagName(el)[0].firstChild.nodeValue.indexOf(" ")!=-1){
							formEl.value = doc.getElementsByTagName(el)[0].firstChild.nodeValue.split(" ")[0];
						}
					}
			}
		}catch(err){alert("Error: "+describeObject(err)+"\n\ntinyMCE="+tinyMCE)}
	}
	
	var uploadImgElsArr = new Array();
	var file1 = new Array("File1","imgViewDelete1"); uploadImgElsArr.push(file1);
	var file2 = new Array("File2","imgViewDelete2"); uploadImgElsArr.push(file2);
	var file3 = new Array("File3","imgViewDelete3"); uploadImgElsArr.push(file3);
	
	/* [20071121] if(document.title.indexOf("Account Management: vunet")>=0){
		//alert("273")
	}*/
	
	for(var j=0; j<uploadImgElsArr.length; j++){
		var el = uploadImgElsArr[j];
		var formEl = document.getElementById(el[0]);
		var imgViewDeleteLink = document.getElementById(el[1]);
		try{
			if(formEl && imgViewDeleteLink && doc.getElementsByTagName("ItemID")[0].firstChild && 
			   doc.getElementsByTagName("Image"+(j+1))[0].firstChild){
				imgViewDeleteLink.innerHTML = "[View/Delete]";
				imgViewDeleteLink.title = (j+1)+"-"+doc.getElementsByTagName("ItemID")[0].firstChild.nodeValue;
			}
		}catch(err){}
	}
	
	//if(document.title.indexOf("Account Management: vunet")>=0){
		//alert(tinymcedescription)
		//setTimeout('setTinyMCEVal(\tinymcedescription\)',2000)
	//}
	
}
//help IE6 to set HTML in TinyMCE
function delaySetTinyMCEVal(){
	setTinyMCEVal(tinyMCEDescriptionContainer);
	tinyMCEDescriptionContainer = "";
}

function viewImg(imgInfo){
	if(imgInfo && imgInfo.title){
		var titleArr = imgInfo.title.split("-");
		if(titleArr.length==2){
			var params = "file="+titleArr[0]+"&itemid="+titleArr[1];
			window.open("http://www.worldincatalog.com/manage/viewimage.asp?"+params,"Image","width=400,height=450,scrollbars=yes,resizable=yes")
		}		
	}									
}


function previewDescription(){
	var html = (tinyMCE) ? tinyMCE.getContent("Descriptions") : document.getElementById('Descriptions').value;
	$.fancybox(
		html,
		{
        	'autoDimensions'	: false,
			'width'         	: 450,
			'height'        	: 'auto'
		}
	);					
}

function showHideUploadFormRowsByCatType(catType){
	var rowsToHideArr = new Array("rowSalePrice","rowSaleSH","rowSaleInsurance","rowSaleQuantity","rowSalePaypalEmail",
					"rowSalePaymentLink","rowSaleRedirectionLink","rowSalePaymentInstructions");//"rowSaleLink",
	for(var i=0; i<rowsToHideArr.length; i++){
		var row = document.getElementById(rowsToHideArr[i]);
		if(row){
			if(catType!="Sale"){row.style.display = "none";
			}else{
				try {
				  row.style.display="table-row";
				} catch(e) {
				  row.style.display = "block";
				}
			}
		}
	}
	disableUploadBtns(false);
}


///////////////////////////////////TinyMCE INITIALIZATION////////////////////////////

// Custom event handler
function myCustomExecCommandHandler(editor_id, elm, command, user_interface, value) {
	var linkElm, imageElm, inst;
	switch (command) {
		case "mceLink":
				inst = tinyMCE.getInstanceById(editor_id);
				linkElm = tinyMCE.getParentElement(inst.selection.getFocusElement(), "a");
				if (linkElm)
						alert("Link dialog has been overriden. Found link href: " + tinyMCE.getAttrib(linkElm, "href"));
				else
						alert("Link dialog has been overriden.");
				return true;
		case "mceImage":
				inst = tinyMCE.getInstanceById(editor_id);
				imageElm = tinyMCE.getParentElement(inst.selection.getFocusElement(), "img");
				if (imageElm)
						alert("Image dialog has been overriden. Found image src: " + tinyMCE.getAttrib(imageElm, "src"));
				else
						alert("Image dialog has been overriden.");
				return true;
	}
  return false; // Pass to next handler in chain
}
// Custom save callback, gets called when the contents is to be submitted
function customSave(id, content) {
	 alert(id + "=" + content);
} 

function triggerTinyMCE(divId){ // [20071121] if(document.title.indexOf("Account Management: vunet")==-1){return;}////////////////		
	if(divId && divId=="divUpload"){
		try{
			if(myTinyMCE==false){
				tinyMCE.execCommand('mceAddControl', false, 'Descriptions');
				myTinyMCE = true;
			}else if(myTinyMCE==true){
				emptyTinyMCE();
			}
		}catch(er){}
	}else{
		//tinyMCE.execCommand('mceRemoveControl', false, 'Descriptions');
	}
}
function getDescription(){
  	if(tinyMCE){ return tinyMCE.getContent("Descriptions"); }else{ return ""; }
}
function saveTinyMCEVal() {
  	if(tinyMCE){	
		tinyMCE.execInstanceCommand('Descriptions','mceCleanup'); //clean up before saving
  		tinyMCE.triggerSave(true,true); //save to textarea (tinyMCE.triggerSave();)
  		//alert(document.getElementById("Descriptions").value);
	}
}
function emptyTinyMCE(){
	if(tinyMCE){
		tinyMCE.execCommand('mceFocus', false, 'Descriptions');
		var inst = tinyMCE.getInstanceById('Descriptions');
		if(inst){ inst.setHTML(""); }
	}
}
function setTinyMCEVal(val){
	if(tinyMCE){
		tinyMCE.execCommand('mceFocus', false, 'Descriptions');
		var inst = tinyMCE.getInstanceById('Descriptions');
		if(inst){ inst.setHTML(val); }
	}
}

function describeObject(obj){
  var resp="Object: \n";
  for(i in obj){
    resp+=" "+i+"="+obj[i]+"\n";
  } 
  return resp;
}
