var postUrl = "post.asp";
var folderPicture = "pictures/"
var nthumbnails = 15;
var nthumbnails_detail = 4;

// variabili lista
var result = null;
var xmlhttp = new XMLHttpRequest();

var actualpage = 0;
var npage = 0;
var src = "";
var xmlsrc = Sarissa.getDomDocument();

// variabili dettaglio
var detail = null;
var xmlhttp2 = new XMLHttpRequest();

var activemodel = 0;
var activemodel_page = 0;
var activemodel_npage = 0;
var activemodel_picture = 0;

function createElementNS (namespaceURI, elementName, ownerDocument) {
  var element = null;
  if (typeof ownerDocument.createElementNS != 'undefined') {
    element = ownerDocument.createElementNS(namespaceURI, elementName);
  }
  else if (typeof ownerDocument.createNode != 'undefined') {
    element = ownerDocument.createNode(1, elementName, namespaceURI);
  }
  return element;
}


function downloadPdf()
{
	if (activemodel == 0)
	{
		alert("no model selected!");
	} else {
		var url = "createPdf.asp?activemodel=" + activemodel;
		popupWindow = open(url,"WINDOW_" + activemodel.toString(),"menubar=yes, status=yes, titlebar=yes, toolbar=yes, width=640, height=480, scrollbars=yes, resizable=yes");
		if (popupWindow.opener == null) {
			popupWindow.opener = self;
		}

	}
}

function onlyNumber(obj)
{
	//var car = String.fromCharCode(event.keyCode);
	//if (!car.match("[0-9]")) 
	//{
	//	alert("Please, type only numbers here.")
	//	return false;
	//}
	if (isNaN(obj.value))
	{
		alert("Please, type only numbers here");
		obj.value = "";
	}
}

function findFeature(featureID)
{
	var features = detail.documentElement.childNodes[2].childNodes;
	val = "";
	for (var f=0;f<features.length;f++)
	{
		if (Sarissa.getText(features[f].childNodes[0]) == featureID)
		{
			val = Sarissa.getText(features[f].childNodes[1]);
			if (val == "n.d.")
			{
				val = "";
			}
			break;
		}
	}
	return val;
}

function removeSrcValue(index,val)
{
	var vals = xmlsrc.documentElement.childNodes[index].childNodes
	for (var v=0;v<vals.length;v++)
	{
		if (Sarissa.getText(vals[v]) == val)
		{
			xmlsrc.documentElement.childNodes[index].removeChild(vals[v]);
			break;
		}
	}
}

function fillField(obj)
{
	switch (obj.id)
	{
		//case "searchfield_min":
		//	var srcnode = xmlsrc.documentElement.childNodes[0].childNodes[0];
		//	if (srcnode.childNodes.length > 0)
		//	{ 
		//		srcnode.removeChild(srcnode.firstChild)
		//	}
		//	if (obj.value != "")
		//	{
		//		var newnode = xmlsrc.createTextNode(obj.value)
		//		srcnode.appendChild(newnode);
		//	}
		//	break;
		//case "searchfield_max":
		//	var srcnode = xmlsrc.documentElement.childNodes[0].childNodes[1];
		//	if (srcnode.childNodes.length > 0)
		//	{ 
		//		srcnode.removeChild(srcnode.firstChild)
		//	}
		//	if (obj.value != "")
		//	{
		//		var newnode = xmlsrc.createTextNode(obj.value)
		//		srcnode.appendChild(newnode);
		//	}
		//	break;
		case "searchfield_min":
			if (isNaN(obj.value))
			{
				alert("Please, type only numbers here");
				obj.value = "";
				obj.focus();
			} else {
				var srcnode = xmlsrc.documentElement.childNodes[5]
				if (srcnode.firstChild)
				{
					srcnode.removeChild(srcnode.firstChild);
				}
				var newnode = xmlsrc.createTextNode(obj.value)
				srcnode.appendChild(newnode);
			}
			break;
		case "searchfield_max":
			if (isNaN(obj.value))
			{
				alert("Please, type only numbers here");
				obj.value = "";
				obj.focus();
			} else {
				var srcnode = xmlsrc.documentElement.childNodes[6]
				if (srcnode.firstChild)
				{
					srcnode.removeChild(srcnode.firstChild);
				}
				var newnode = xmlsrc.createTextNode(obj.value)
				srcnode.appendChild(newnode);
			}
			break;
		case "hair_1":
		case "hair_2":
		case "hair_3":
		case "hair_4":
		case "hair_5":
			var srcnode = xmlsrc.documentElement.childNodes[1]
			if (obj.checked)
			{
				var newnode = createElementNS ("", "value", xmlsrc)
				var newnode2 = xmlsrc.createTextNode(obj.value)
				newnode.appendChild(newnode2);
				srcnode.appendChild(newnode);
			} else {
				removeSrcValue(1,obj.value);
			}
			document.getElementById("hair_all").checked = false;
			break;
		case "hair_all":
			if (obj.checked)
			{
				var srcnode = xmlsrc.documentElement.childNodes[1];
				var n = srcnode.childNodes.length
				for (var sn=0;sn<n;sn++)
				{
					srcnode.removeChild(srcnode.firstChild);
				}
				var cb = getElementsByClassName("cb_hair")
				for (var cn=0;cn<cb.length;cn++)
				{
					cb[cn].checked = false;
				}
			}
			break;
		case "eye_1":
		case "eye_2":
		case "eye_3":
		case "eye_4":
			var srcnode = xmlsrc.documentElement.childNodes[2];
			if (obj.checked)
			{
				var newnode = createElementNS ("", "value", xmlsrc)
				var newnode2 = xmlsrc.createTextNode(obj.value)
				newnode.appendChild(newnode2);
				srcnode.appendChild(newnode);
			} else {
				removeSrcValue(2,obj.value);
			}
			document.getElementById("eye_all").checked = false;
			break;
		case "eye_all":
			if (obj.checked)
			{
				var srcnode = xmlsrc.documentElement.childNodes[2];
				var n = srcnode.childNodes.length
				for (var sn=0;sn<n;sn++)
				{
					srcnode.removeChild(srcnode.firstChild);
				}
				var cb = getElementsByClassName("cb_eye")
				for (var cn=0;cn<cb.length;cn++)
				{
					cb[cn].checked = false;
				}
			}
			break;
		case "skin_1":
		case "skin_2":
		case "skin_3":
		case "skin_4":
		case "skin_5":
			var srcnode = xmlsrc.documentElement.childNodes[3];
			if (obj.checked)
			{
				var newnode = createElementNS ("", "value", xmlsrc)
				var newnode2 = xmlsrc.createTextNode(obj.value)
				newnode.appendChild(newnode2);
				srcnode.appendChild(newnode);
			} else {
				removeSrcValue(3,obj.value);
			}
			document.getElementById("skin_all").checked = false;
			break;
		case "skin_all":
			if (obj.checked)
			{
				var srcnode = xmlsrc.documentElement.childNodes[3];
				var n = srcnode.childNodes.length
				for (var sn=0;sn<n;sn++)
				{
					srcnode.removeChild(srcnode.firstChild);
				}
				var cb = getElementsByClassName("cb_skin")
				for (var cn=0;cn<cb.length;cn++)
				{
					cb[cn].checked = false;
				}
			}
			break;
		case "body_1":
		case "body_2":
		case "body_3":
		case "body_4":
			var srcnode = xmlsrc.documentElement.childNodes[4];
			if (obj.checked)
			{
				var newnode = createElementNS ("", "value", xmlsrc)
				var newnode2 = xmlsrc.createTextNode(obj.value)
				newnode.appendChild(newnode2);
				srcnode.appendChild(newnode);
			} else {
				removeSrcValue(4,obj.value)
			}
			document.getElementById("body_all").checked = false;
			break;
		case "body_all":
			if (obj.checked)
			{
				var srcnode = xmlsrc.documentElement.childNodes[4];
				var n = srcnode.childNodes.length
				for (var sn=0;sn<n;sn++)
				{
					srcnode.removeChild(srcnode.firstChild);
				}
				var cb = getElementsByClassName("cb_body")
				for (var cn=0;cn<cb.length;cn++)
				{
					cb[cn].checked = false;
				}
			}
			break;
	}	
}


function goPrev()
{
	if (result)
	{
		if (actualpage>0)
		{
			actualpage -= 1;		
			parseList();
		} else {
			actualpage = npage-1;
			parseList();
		}
	}
}

function goNext()
{
	if (result)
	{
		if ((actualpage+1)<npage)
		{
			actualpage += 1;
			parseList();
		} else {
			actualpage = 0;
			parseList();
		}
	}
}

function showSrc(azione)
{
	document.getElementById("cell1_result").style.display = "none";
	document.getElementById("cell1_src").style.display = "block";
	document.getElementById("search_base").value = azione;
	var xmlsrcString = "<?xml version=\"1.0\" encoding=\"windows-1252\" ?><src><age><min></min><max></max></age><haircolor></haircolor><eyecolor></eyecolor><skin></skin><bodyshape></bodyshape><minage></minage><maxage></maxage></src>";
	xmlsrc = (new DOMParser()).parseFromString(xmlsrcString, "text/xml");
	var cb = getElementsByClassName("cb_all")
	for (var cn=0;cn<cb.length;cn++)
	{
		cb[cn].checked = true;
	}
	var cb = getElementsByClassName("cb_hair")
	for (var cn=0;cn<cb.length;cn++)
	{
		cb[cn].checked = false;
	}
	var cb = getElementsByClassName("cb_eye")
	for (var cn=0;cn<cb.length;cn++)
	{
		cb[cn].checked = false;
	}
	var cb = getElementsByClassName("cb_skin")
	for (var cn=0;cn<cb.length;cn++)
	{
		cb[cn].checked = false;
	}
	var cb = getElementsByClassName("cb_body")
	for (var cn=0;cn<cb.length;cn++)
	{
		cb[cn].checked = false;
	}
	document.getElementById("searchfield_max").value = "";
	document.getElementById("searchfield_min").value = "";
}

function back2Src()
{
	az = document.getElementById("search_base").value;
	showSrc(az);
}

function resetSrc()
{
	var xmlsrcString = "<?xml version=\"1.0\" encoding=\"windows-1252\" ?><src><age><min></min><max></max></age><haircolor></haircolor><eyecolor></eyecolor><skin></skin><bodyshape></bodyshape><minage></minage><maxage></maxage></src>";
	xmlsrc = (new DOMParser()).parseFromString(xmlsrcString, "text/xml");
	var cb = getElementsByClassName("cb_all")
	for (var cn=0;cn<cb.length;cn++)
	{
		cb[cn].checked = true;
	}
	var cb = getElementsByClassName("cb_hair")
	for (var cn=0;cn<cb.length;cn++)
	{
		cb[cn].checked = false;
	}
	var cb = getElementsByClassName("cb_eye")
	for (var cn=0;cn<cb.length;cn++)
	{
		cb[cn].checked = false;
	}
	var cb = getElementsByClassName("cb_skin")
	for (var cn=0;cn<cb.length;cn++)
	{
		cb[cn].checked = false;
	}
	var cb = getElementsByClassName("cb_body")
	for (var cn=0;cn<cb.length;cn++)
	{
		cb[cn].checked = false;
	}
	document.getElementById("searchfield_max").value = "";
	document.getElementById("searchfield_min").value = "";
}

function submitSrc()
{
	az = document.getElementById("search_base").value;
	prepareCall(az,true);
}


function prepareCall(azione,cd)
{
	var strlist = "<div style=\"margin:30px 0 0 30px;\">PLEASE WAIT...</div>";
	var divlist = document.getElementById("divlist");
	divlist.innerHTML = strlist;
	if (!cd)
	{
		cdbool = false;
	} else {
		cdbool = cd;
	}
	document.getElementById("cell1_result").style.display = "block";
	document.getElementById("cell1_src").style.display = "none";
	st = setTimeout("callList(\"" + azione + "\"," + cdbool + ")",1);
}

function performSearch()
{
	src = document.getElementById("searchfield").value;
	prepareCall("search&src=" + src,true);
}

function callList(azione,cd)
{
	if (azione.substring(0,6) != "search")
	{
		src = "";
		document.getElementById("searchfield").value = "";
	}
	if (!cd)
	{
		cdbool = false
	} else {
		cdbool = cd
	}
	actualpage = 0;
	par = "azione=" + azione;	
	var postUrlPar = postUrl + "?" + par 
	var methxml = "GET";
	if (azione == "women" || azione == "men")
	{
		methxml = "POST";
	}
	xmlhttp.open(methxml,postUrlPar, true);
	xmlhttp.setRequestHeader("Content-Type","text/xml");
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==4) {
	  		//if (xmlhttp.status != 200)
			//{
			//	alert(xmlhttp.responseText);
			//}
			result = xmlhttp.responseXML;
			nbooks = result.documentElement.childNodes.length;
			if (nbooks > 0)
			{
				npage = Math.ceil(nbooks/nthumbnails);
				parseList(cdbool);
			} else {
				parseEmpty();
			}
		}
	}
	if (azione == "women" || azione == "men")
	{
		xmlhttp.send(xmlsrc);
	} else {
		xmlhttp.send(null);
	}
}

function callDetail(actmod)
{	
	par = "azione=detail&activemodel=" + actmod;	
	var postUrlPar = postUrl + "?" + par 
	xmlhttp2.open("GET",postUrlPar, true);
	xmlhttp2.setRequestHeader("Content-Type","text/xml");
	xmlhttp2.onreadystatechange=function() {
		if (xmlhttp2.readyState==4) {
	  		activemodel = actmod;
			detail = xmlhttp2.responseXML;
			parseDetail();
		}
	}
	xmlhttp2.send(null);
}

function parseEmpty()
{
	document.getElementById("paging_report").innerHTML = "0/0";
	//if (src != "")
	//{
	//	document.getElementById("searchterm").innerHTML = "%" + src.toUpperCase() + "%";
	//} else {
	//	document.getElementById("searchterm").innerHTML = "";
	//}
	var strlist = "<div style=\"margin:30px 0 0 30px;\">NO RESULT</div>";
	var divlist = document.getElementById("divlist");
	divlist.innerHTML = strlist;
}

function parseList(cd)
{
	var actualpos = actualpage*nthumbnails;
	document.getElementById("paging_report").innerHTML = (actualpage + 1).toString() + "/" + npage.toString();
	var strlist = "";
	var lastpos = 0;
	var nodilist = result.documentElement.childNodes;
	for (var nl=actualpos;nl<actualpos+nthumbnails;nl++)
	{
		if (nodilist[nl])
		{
			var nodolist = nodilist[nl];
			var idmodella = Sarissa.getText(nodolist.childNodes[2])
			var percorsofoto = folderPicture + idmodella + "/t_" + idmodella + "_" + Sarissa.getText(nodolist.childNodes[4]) + ".jpg"
			
			//strlist += "<div style=\"cursor:pointer\" onclick=\"callDetail(" + idmodella + ")\" id=\"cell1_pic_tn_" + idmodella + "\" class=\"pic_tn_canvas\"><img src=\"" + percorsofoto + "\" width=\"50\"><br>" + Sarissa.getText(nodolist.childNodes[1]) + "</div>";
			
			strlist += "<div id=\"cell1_pic_tn_" + idmodella + "\" onclick=\"callDetail(" + idmodella + ")\" class=\"pic_tn_canvas_ol\"><img src=\"" + percorsofoto + "\" width=\"50\"><img src=\"http://www.streetcasting.ch/media/elements/thumb_lo.gif\" id=\"cell1_pic_tn_" + idmodella + "_legend\" width=\"50\" height=\"67\" class=\"tn_overlay\"><div class=\"tn_overlay_legend\">" + Sarissa.getText(nodolist.childNodes[1]) + "</div></div>";
			lastpos = nl;
		}
	}
	document.getElementById("suchresultate").innerHTML = "SUCHRESULTATE " + (actualpos+1) + " - " + (lastpos+1);
	var divlist = document.getElementById("divlist");
	divlist.innerHTML = strlist;
	var idfirstmodel = Sarissa.getText(nodilist[actualpos].selectSingleNode("modelid"));
	if (cd)
	{
		callDetail(Number(idfirstmodel));
	}
}

function parseDetail()
{
	//alert(detail);
	document.getElementById("cell2_header").innerHTML = "<h1>" + Sarissa.getText(detail.documentElement.childNodes[1]) + " " + Sarissa.getText(detail.documentElement.childNodes[0]) + "</h1>";
	npictures = detail.documentElement.childNodes[3].childNodes.length;
	activemodel_page = 0;
	activemodel_npage = Math.ceil(npictures/nthumbnails_detail);
	parsePageDetail(true);
	parseFeatures();
	selectThumbnail();
}

function selectThumbnail()
{
	var divmod = document.getElementById("cell1_pic_tn_" + activemodel);
	var divleg = document.getElementById("cell1_pic_tn_" + activemodel + "_legend");
	var sel = getElementsByClassName("pic_tn_canvas_ol_selected")
	for (var s=0;s<sel.length;s++)
	{
		sel[s].className = "pic_tn_canvas_ol";
		var divlegLo = document.getElementById(sel[s].id + "_legend");
		divlegLo.src = "http://www.streetcasting.ch/media/elements/thumb_lo.gif"; 
	}
	divmod.className = "pic_tn_canvas_ol_selected";
	divleg.src = "http://www.streetcasting.ch/media/elements/thumb_hi.gif";
}

function parseFeatures()
{
	var altezza = findFeature("height");
	if (altezza != "")
	{
		altezza = altezza.substring(0,3) + " cm";
	}
	var dst = findFeature("dress_size_top");
	var dsb = findFeature("dress_size_bottom");
	var neck = findFeature("neck");
	if (neck != "")
	{
		neck = neck.substring(0,3) + " cm";
	}
	var ts = findFeature("t_shirt");
	var jw = findFeature("jeans_w");
	var jl = findFeature("jeans_l");
	var shoes = findFeature("shoes");
	var hair = findFeature("hair_color");
	var eyes = findFeature("eyes_color");
	var age = findFeature("age");
	var q = findFeature("mod_quote");
	var j = findFeature("mod_jobs");
	
	document.getElementById("cell3_value_1").innerHTML = altezza
	document.getElementById("cell3_value_2").innerHTML = dst;
	document.getElementById("cell3_value_3").innerHTML = dsb;
	document.getElementById("cell3_value_4").innerHTML = neck;
	document.getElementById("cell3_value_5").innerHTML = ts;
	document.getElementById("cell3_value_6").innerHTML = "W " + jw + " - L " + jl;
	document.getElementById("cell3_value_7").innerHTML = shoes;
	document.getElementById("cell3_value_8").innerHTML = hair;
	document.getElementById("cell3_value_9").innerHTML = eyes;
	document.getElementById("cell3_value_10").innerHTML = age;
	if (q == "")
	{
		document.getElementById("cell3_2_body").innerHTML = "<p><br><br><br><br><br></p>";
	} else {
		document.getElementById("cell3_2_body").innerHTML = "<p>" +  q + "</p>";
	}
	if (j == "")
	{
		document.getElementById("cell3_3_body").innerHTML = "<p><br><br><br></p>";
	} else {
		document.getElementById("cell3_3_body").innerHTML = "<p>" +  j + "</p>";
	}
}

function parsePageDetail(sd)
{
	var actualposd = activemodel_page*nthumbnails_detail;
	document.getElementById("paging_report_detail").innerHTML = (activemodel_page + 1).toString() + "/" + activemodel_npage.toString();
	var nodilistd = detail.documentElement.childNodes[3].childNodes;
	var strlistd = ""
	for (var nl=actualposd;nl<actualposd+nthumbnails_detail;nl++)
	{
		if (nodilistd[nl])
		{
			var nodolistd = nodilistd[nl];
			var percorsofoto = folderPicture + activemodel + "/t_" + activemodel + "_" + Sarissa.getText(nodolistd) + ".jpg"
			
			//strlistd += "<div style=\"cursor:pointer\" onclick=\"showPictureDetail('" + Sarissa.getText(nodolistd) + "')\" id=\"cell2_pic_tn_" + Sarissa.getText(nodolistd) + "\" class=\"pic_tn_canvas2\"><img src=\"" + percorsofoto + "\" width=\"50\"></div>";
			
			strlistd += "<div onclick=\"showPictureDetail('" + Sarissa.getText(nodolistd) + "')\" id=\"cell2_pic_tn_" + Sarissa.getText(nodolistd) + "\" class=\"pic_tn_canvas_ol2\"><img src=\"" + percorsofoto + "\" width=\"50\"><img src=\"http://www.streetcasting.ch/media/elements/thumb_lo.gif\" id=\"cell2_pic_tn_" + Sarissa.getText(nodolistd) + "_legend\" width=\"50\" height=\"67\" class=\"tn_overlay\"><div class=\"tn_overlay_legend\"><br/></div></div>";
		}
	}
	var divlistd = document.getElementById("cell2_pic_tn");
	divlistd.innerHTML = strlistd;
	if (sd)
	{
		showPictureDetail(Sarissa.getText(nodilistd[actualposd]));
	}
}

function showPictureDetail(idfoto)
{
	var im = document.getElementById("picture_big");
	im.src = folderPicture + activemodel + "/" + activemodel + "_" + idfoto + ".jpg";
	activemodel_picture = idfoto;
	selectThumbnailDetail();
}

function selectThumbnailDetail()
{
	var sel = getElementsByClassName("pic_tn_canvas_ol2_selected")
	for (var s=0;s<sel.length;s++)
	{
		sel[s].className = "pic_tn_canvas_ol2";
		var divlegLo = document.getElementById(sel[s].id + "_legend");
		divlegLo.src = "http://www.streetcasting.ch/media/elements/thumb_lo.gif";
	}
	if (document.getElementById("cell2_pic_tn_" + activemodel_picture))
	{
		var divmod = document.getElementById("cell2_pic_tn_" + activemodel_picture);
		divmod.className = "pic_tn_canvas_ol2_selected";
		var divleg = document.getElementById("cell2_pic_tn_" + activemodel_picture + "_legend");
		divleg.src = "http://www.streetcasting.ch/media/elements/thumb_hi.gif";
	}
}

function goNextDetail()
{
	if (detail)
	{
		if ((activemodel_page+1)<activemodel_npage)
		{
			activemodel_page += 1;
			parsePageDetail();
		} else {
			activemodel_page = 0;
			parsePageDetail();
		}
		selectThumbnailDetail();
	}
}

function goPrevDetail()
{
	if (detail)
	{
		if (activemodel_page>0)
		{
			activemodel_page -= 1;		
			parsePageDetail();
		} else {
			activemodel_page = activemodel_npage - 1;
			parsePageDetail();
		}
		selectThumbnailDetail();
	}
}

function getElementsByClassName(class_name)
{
  var all_obj,ret_obj=new Array(),j=0,teststr;

  if(document.all)all_obj=document.all;
  else if(document.getElementsByTagName && !document.all)
    all_obj=document.getElementsByTagName("*");

  for(i=0;i<all_obj.length;i++)
  {
    if(all_obj[i].className.indexOf(class_name)!=-1)
    {
      teststr=","+all_obj[i].className.split(" ").join(",")+",";
      if(teststr.indexOf(","+class_name+",")!=-1)
      {
        ret_obj[j]=all_obj[i];
        j++;
      }
    }
  }
  return ret_obj;
}


