// JavaScript Document


var URL = document.location.href;
var LOCAL_DATA = {};
var dataString;

var TrackingCodes = 
{
	s1:"shepherddigital/loading",
	s2:"shepherddigital/start",
	s3:"shepherddigital/home",
	s4:"shepherddigital/aboutUs",
	s5:"shepherddigital/caseStudy",
	s6:"shepherddigital/ourClients",
	s7:"shepherddigital/joinUs",
	s8:"shepherddigital/contactUs",
	
	b1:"shepherddigital/ourClients/www.grouek.com",
	b2:"shepherddigital/ourClients/www.greatworks.se",
	b3:"shepherddigital/ourClients/www.tyo-id.co.jp",
	b4:"shepherddigital/ourClients/www.unit9.com",
	b5:"shepherddigital/ourClients/www.cailoghi.it",
	
	w1:"shepherddigital/caseStudy/Brotherhood",
	w2:"shepherddigital/caseStudy/HBR",
	w3:"shepherddigital/caseStudy/AudiA3",
	w4:"shepherddigital/caseStudy/AudiA4",
	w5:"shepherddigital/caseStudy/AudiA5",
	
	w6:"shepherddigital/caseStudy/CMB_MTV_CC",
	w7:"shepherddigital/caseStudy/Yinxiang_Xihu",
	w8:"shepherddigital/caseStudy/KFC",
	w9:"shepherddigital/caseStudy/Xinting",
	w10:"shepherddigital/caseStudy/Hitachi",
	
	w11:"shepherddigital/caseStudy/Cartier",
	w12:"shepherddigital/caseStudy/CNGINT",
	w13:"shepherddigital/caseStudy/MHP",
	w14:"shepherddigital/caseStudy/Sony",
	w15:"shepherddigital/caseStudy/SEIKO",
	
	job1:"shepherddigital/joinUs/job1",
	job2:"shepherddigital/joinUs/job2",
	job3:"shepherddigital/joinUs/job3",
	job4:"shepherddigital/joinUs/job4",
	job5:"shepherddigital/joinUs/job5",
	job6:"shepherddigital/joinUs/job6",
	job7:"shepherddigital/joinUs/job7",
	job8:"shepherddigital/joinUs/job8"
}


function getLocalData()
{
	return dataString;
	return dataString;
}

function getState()
{
	return true;
}

function hide()
{
	/*
	for ( i in LOCAL_DATA )
	{
		LOCAL_DATA[i] = LOCAL_DATA[i];
		dataString += i + ":" + LOCAL_DATA[i] + ",";
	}
	var t = dataString.lastIndexOf(',');
	dataString = dataString.substr(0, t);
	sendData(dataString);
	*/
}

function thisMovie(movieName)
{
	if (navigator.appName.indexOf("Microsoft") != -1) 
	{
		return window[movieName];
	} 
	else 
	{
		return document[movieName];
	}
}

function sendData(value) 
{
	thisMovie("shell").sendToActionScript(value);
}

function QueryURL()
{
	if ( URL.indexOf('/#/') != -1 )
	{
		//var parameters = URL.substr(URL.indexOf('seekParameter') + 1);
		var parameterArr = URL.split('/#/');
		parameterArr = parameterArr[1];
		parameterArr = parameterArr.split(',');
		
		for ( i in parameterArr )
		{
			var temp = parameterArr[i].split(':');
			LOCAL_DATA[temp[0]] = String(temp[1]);
			//dataString += temp[0] + ':' + String(temp[1]) + ','
			//delete temp;
		}
	}
	
	for ( j in LOCAL_DATA )
	{
		LOCAL_DATA[j] = LOCAL_DATA[j];
		dataString += j + ":" + LOCAL_DATA[j] + ",";
	}
}

function calljs(s)
{
	//document.Form_msg.Text_msg.value = s;
	alert(s.toString());
}


// global flag
var isMyIE = false;

// global request and XML document objects
var req;

// retrieve XML document (reusable generic function);
// parameter is URL string (relative or complete) to
// an .xml file whose Content-Type is a valid XML
// type, such as text/xml; XML source must be from
// same domain as HTML file
function loadXMLDoc(url) {
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest)
	{
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    }
	else if (window.ActiveXObject)
	{
        isMyIE = true;
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req)
		{
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
}


// retrieve text of an XML document element, including
// elements using namespaces
function getElementTextNS(prefix, local, parentElem, index)
{
    var result = "";
    if (prefix && isMyIE)
	{
        // IE/Windows way of handling namespaces
        result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
    }
	else
	{
        // the namespace versions of this method 
        // (getElementsByTagNameNS()) operate
        // differently in Safari and Mozilla, but both
        // return value with just local name, provided 
        // there aren't conflicts with non-namespace element
        // names
        result = parentElem.getElementsByTagName(local)[index];
    }
    if (result)
	{
        // get text, accounting for possible
        // whitespace (carriage return) text nodes 
        if (result.childNodes.length > 1)
		{
            return result.childNodes[1].nodeValue;
        }
		else
		{
            return result.firstChild.nodeValue;    		
        }
    }
	else
	{
        return "n/a";
    }
}

// handle onreadystatechange event of req object
function processReqChange()
{
    // only if req shows "loaded"
    if (req.readyState == 4)
	{
        // only if "OK"
        if (req.status == 200)
		{
			var items = req.responseXML.getElementsByTagName("options");
			// loop through <item> elements, and add each nested
			// <title> element to Topics select element
			for (var i = 0; i < items.length; i++ )
			{
				//appendToSelect(select, i, document.createTextNode(getElementTextNS("", "title", items[i], 0)));
				var tip = getElementTextNS("", "param", items[i], 0);
				var val = getElementTextNS("", "value", items[i], 0);
				//dataString += tip + ':' + val + ',';
				LOCAL_DATA[tip] = val;
				//alert(val);
			}
			QueryURL();
         }
		 else
		 {
            alert("There was a problem retrieving the XML data:\n" + req.statusText);
         }
    }
}


// add item to select element the less
// elegant, but compatible way.
function appendToSelect(value, content)
{
    var opt;
    opt = document.createElement("option");
    opt.value = value;
    opt.appendChild(content);
	//select.appendChild(opt);
}


// invoked by "Category" select element change;
// loads chosen XML document, clears Topics select
// element, loads new items into Topics select element
function loadDoc(evt) {
    // equalize W3C/IE event models to get event object
    evt = (evt) ? evt : ((window.event) ? window.event : null);
    if (evt)
	{
        // equalize W3C/IE models to get event target reference
        var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
        if (elem)
		{
            try
			{
                if (elem.selectedIndex > 0)
				{
                    loadXMLDoc(elem.options[elem.selectedIndex].value);
                }	
            }
            catch(e)
			{
                var msg = (typeof e == "string") ? e : ((e.message) ? e.message : "Unknown Error");
                alert("Unable to get XML data:\n" + msg);
                return;
            }
        }
    }
}

