// JavaScript Document

var xmlDoc=null;
var globalFirstImg = null;
var globalImgArr = new Array();
var globalClientArr = new Array();
var globalPageArr = new Array();
var globalImgArrSet = 0;
var thisImgStr = new Array();
var thisXml = new String();
var thisHtm = new String();

function parseUrl() {
	var url = location.href;
	output = url.substring(url.indexOf('?')+1, url.length);
	if (output.length > 7){
		output = globalFirstImg;
	}
	return output;
}

function initImage (id) {
	//get id
	if (id == undefined){
		var id = parseUrl();
	}
	
	//title
	document.getElementById("heading_client").innerHTML = globalClientArr[id];
	
	//correct slidebar page
	id_page = globalPageArr[id];
	if ( id_page != document.getElementById("page").value){	
		clientListShow (thisXml, id_page, thisHtm);
	}
	
	//slide show page numbers
	thisImgStr = globalImgArr[id].split(",");
	var slidepagehtml = "<table><tr>";
	k = thisImgStr.length-1;
	for ( i=0; i<k; i++ ){
		pgnum = i+1;
		slidepagehtml += "<td><a href='#' id='slide" + i + "' onclick='javascript:loadImage(" + i + "); return false'>" + pgnum + "</a></td><td><img src='images/page_sep.gif' /></td>";
	}
	slidepagehtml += "<td><a href='#' id='slide" + k + "' onclick='javascript:loadImage(" + k + "); return false'>" + thisImgStr.length + "</a></td></tr></table>";
	document.getElementById("slidepage").innerHTML = slidepagehtml;	
	
	//load pic
	loadImage(0);
}

function changeClass (obj, style) {
	var browserName=navigator.appName;
	if(browserName!="Microsoft Internet Explorer"){
		document.getElementById(obj).setAttribute("class", style);		
	}else{
		document.getElementById(obj).setAttribute("className", style);
	}
}

function loadImage (num) {
	document.getElementById("img").innerHTML = "<img src='" + thisImgStr[num] + "'>";
	document.getElementById("picnum").value = num;
	for (i=0; i<thisImgStr.length; i++ ){
		changeClass("slide"+i, "active");
	}
	changeClass("slide"+num, "inactive");
	//hide btn
	if ( num == 0 ) {
		document.getElementById("prevtd").style.visibility = "hidden";
	} else {
		document.getElementById("prevtd").style.visibility = "visible";
	}
	if ( num == thisImgStr.length-1 ) {
		document.getElementById("nexttd").style.visibility = "hidden";
	} else {
		document.getElementById("nexttd").style.visibility = "visible";
	}
}

function slideSwitch(dir){
	var x = thisImgStr.length-1;
	thisnum = parseInt(document.getElementById("picnum").value);
	if ( thisnum>0 && dir==-1 ) {
		loadImage(thisnum-1);
	}
	if ( thisnum<x && dir==1 ) {
		loadImage(thisnum+1);
	}
}
		
function loadxml (xml) {
	//load xml
	//if (window.ActiveXObject) {
		// code for IE
	//	xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	//} else if (document.implementation.createDocument){
		// code for Mozilla, Firefox, Opera, etc.
	//	xmlDoc=document.implementation.createDocument("","",null);
	//} else {
	//	alert('Your browser cannot handle this script');
	//}
	//if (xmlDoc!=null) {
	//	xmlDoc.async=false;
	//	alert ("here");
	//	xmlDoc.load(xml);
	//}
	var error = "";
	var file = xml;
	try //Internet Explorer
	{
 	xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
 	xmlDoc.async=false;
 	xmlDoc.load(file);
	}
	catch(e)
	{
 	try //Firefox, Mozilla, Opera, etc.
 	{
  	xmlDoc=document.implementation.createDocument("","",null);
  	xmlDoc.async=false;
  	xmlDoc.load(file);
 	}
 	catch(e)
 	{
  	try //Google Chrome
  	{
   	var xmlhttp = new window.XMLHttpRequest();
   	xmlhttp.open("GET",file,false);
   	xmlhttp.send(null);
   	xmlDoc = xmlhttp.responseXML.documentElement;
  	}
  	catch(e)
  	{
   	error=e.message;
  	}
 	}
	}
}

function clientListShow (xml, page, htm) {
	loadxml (xml);
	var x=xmlDoc.getElementsByTagName("list");
	
	//set variables
	thisXml = xml;
	thisHtm = htm;
	
	if (page==0){
		page=thisPage;
	}
	
	if (htm == "home"){
		numOfBox = 2;
		GetUnique(x.length-1, numOfBox);
	} else if (htm == "portfolio"){
		numOfBox = 3;
		var temp = 0;
		//set global variables
		if (globalImgArrSet == 0 ) {
			for (i=0; i<x.length; i++){ 
				var id = x[i].getElementsByTagName("id")[0].childNodes[0].nodeValue;
				
				//set globalImgArr
				var y = x[i].getElementsByTagName("img");
				for (k=0; k<y.length; k++ ) {
					if ( globalImgArr[id] == undefined ) {
						globalImgArr[id] = y[k].childNodes[0].nodeValue;
					} else {
						globalImgArr[id] += "," + y[k].childNodes[0].nodeValue;
					}
				}
				
				//set globalClientArr				
				globalClientArr[id] = x[i].getElementsByTagName("client")[0].childNodes[0].nodeValue;
				
				//set globalPageArr
				if (i%numOfBox==0){
					temp++;
				}					
				globalPageArr[id] = temp;
			}
			//set globalFirstImg
			globalFirstImg = x[0].getElementsByTagName("id")[0].childNodes[0].nodeValue;
			globalImgArrSet = 1;
		}
	}
	
	//reset boxes
	for (i=0; i<numOfBox; i++){ 	
		document.getElementById("list"+i).innerHTML = "";
		document.getElementById("info"+i).innerHTML = "";
	}
	//fill boxes
	for (i=0; i<numOfBox; i++){ 
		//get xml elements
		if (htm == "home"){
			var j = Current[i];
		} else if (htm == "portfolio"){
			var j = ((page-1)*numOfBox) + i;
		}
		thisId = x[j].getElementsByTagName("id")[0].childNodes[0].nodeValue;
		thm = x[j].getElementsByTagName("thm")[0].childNodes[0].nodeValue;
		title = x[j].getElementsByTagName("title")[0].childNodes[0].nodeValue;
		client = x[j].getElementsByTagName("client")[0].childNodes[0].nodeValue;
		url = x[j].getElementsByTagName("url")[0].childNodes[0].nodeValue;
		
		//set btn action
		if (htm == "home"){
			view = "<a href='portfolio.html?"+ thisId + "' target='_self'>";
		} else if (htm == "portfolio"){
			view = "<a href='#' onclick='javascript:initImage(" + thisId + "); return false'>";
		}
		if (url != "#") {
			launch = "<a href='" + url + "' target='_blank'><img src='images/btn_launch.gif' border='0' /></a>";
		} else {
			launch = "";
		}			
		
		//write html
		document.getElementById("list"+i).innerHTML = "<img src='" + thm + "'>";
		document.getElementById("info"+i).innerHTML = "<table><tr><td>- Title: " + title + "</td></tr><tr><td>- Client: " + client + "</td></tr><tr><td>" + view + "<img src='images/btn_view.gif' border='0' /></a> &nbsp;" + launch + "</td></tr></table>";		
	}
	document.getElementById("page").value = page;
	document.getElementById("pagettl").value = Math.ceil(x.length/3);	
	
}

function clientListPage (dir){
	var pagenum = parseInt(document.getElementById("page").value);
	var pagettl = parseInt(document.getElementById("pagettl").value);
	if ( pagenum>1 && dir==-1 ) {
		document.getElementById("page").value = pagenum - 1;
		clientListShow (thisXml, pagenum - 1, thisHtm);
	}
	if ( pagenum<pagettl && dir==1 ) {
		document.getElementById("page").value = pagenum + 1;
		clientListShow (thisXml, pagenum + 1, thisHtm);
	}
}


var Found=false
var Current = new Array()
var Count=0
var Current = new Array()

function GetUnique(MaxValue, NumUnique) {
	for (i=0;Count<NumUnique;Count++){
		Found=false
      	var rndValue = get_random(MaxValue)
      	var j=0
      	for (j=0;j<Current.length;j++){
	        if (Current[j] == rndValue){
				Found=true
        		break
        	}
      	}
      	if (Found){
        	Count--
      	} else {
       		Current[Count]=rndValue
      	}
    }
}
function get_random(MaxValue) {
    var ranNum= Math.round(Math.random()*MaxValue);
    return ranNum;
}