
/* 	VFOC_143 scripts
	Author: Shegun Konibire
    Modified: Rohit Mistry
	Studio: Dare Digital
   	Date: 28.05.2008	
	------------------	*/	
		
/* Returns an array of objects with specified className: Taken off the web, tehe */
function getElementsByClassName(oElm, strTagName, strClassName){
    var arrElements = (strTagName == "*" && oElm.all) ? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for (var i = 0; i < arrElements.length; i++) {
        oElement = arrElements[i];
        if (oRegExp.test(oElement.className)) {
            arrReturnElements.push(oElement);
        }
    }
    return (arrReturnElements)
}
// --------------------------------------------------

/***************************************************************************************************** 

    Query string object used for parsing a querystring
    obtained from http://dhtmldev.com/examples/js/query_string/query_string.js
    Added by RM
    
*****************************************************************************************************/
function QueryString() {
	// PROPERTIES
	this.arg = new Array;
	this.status = false;
	
	// METHODS
	this.clear = Clear;
	this.get = Get;
	this.getAll = GetAll;
	this.getStatus = GetStatus;
	this.read = Read;
	this.set = Set;
	this.write = Write;
	
	// FUNCTIONS
	
	// Clears the array, this.arg, of all query string data
	function Clear()
	{	this.arg = new Array;
	}
	
	// Returns a named value from the query string
	function Get(sName)
	{	return this.arg[sName];
	}
	
	// Return all data as an associative array
	function GetAll()
	{	return this.arg;
	}
	
	function GetStatus()
	{	return this.status;
	}
	
	// Reads the query string into an array named this.arg
	function Read(sUrl) 
	{	var aArgsTemp, aTemp, sQuery;
		// You can pass in a URL query string
		if(sUrl)
		{	sQuery = sUrl.substr(sUrl.lastIndexOf("?")+1, sUrl.length);
		}
		// Or read it from the browser location
		else
		{	sQuery = window.location.search.substr(1, window.location.search.length);
		}
		// Check that query string exists and contains data
		// If not (length < 1) then return
		if(sQuery.length < 1) {return;}
		// Else set this.status to true and proceed
		else {this.status = true;}
		//
		aArgsTemp = sQuery.split("&");	
		for (var i=0 ; i<aArgsTemp.length; i++)
		{	aTemp = aArgsTemp[i].split("=");
			this.arg[aTemp[0]] = aTemp[1];
		}
	}
	
	// Overwrites an existing named value in the array, this.arg
	// You can also pass null to delete from array
	function Set(sName,sValue)
	{	if (sValue == null) {delete this.arg[sName];}
		else {this.arg[sName] = sValue;}
	}
	
	// Writes out a string from the data in this.arg array
	// This string can be used to pass a new query string to the browser
	// when navigating to the next page. This allows a page
	// to create and pass data to another page via JavaScript.
	function Write()
	{	var sQuery = new String(""); 
		for (var sName in this.arg)
		{	if (sQuery != "") {sQuery += "&";}
			if (this.arg[sName]) {sQuery += sName + "=" + this.arg[sName];}
		}
		if (sQuery.length > 0) {return "?" + sQuery;}
		else {return sQuery;}
	}
}




// --------------------------------------------------

// Uses jQuery functions to retrieve XML



// Using SWF object
// NOTE: This works only with swfobject.js v1.5, and not v2.0
var playerVersion = deconcept.SWFObjectUtil.getPlayerVersion();
var versionMajor = playerVersion['major'];
var fullversion = playerVersion['major']+'.'+ playerVersion['minor'];
var correctFlashPlayer = false;

var usersFlashVersion = versionMajor;
var requiredFlashVersion = 8; // These Flash movies require version 8

// Check we have the correct Flash Player version
if ( usersFlashVersion >= requiredFlashVersion ){
	correctFlashPlayer = true;
}


// Plays flash demos of selected icon (aka entry)
function playDemo(demoName){
	// Remove image or flash movie, add loading animation for effects
	document.getElementById("demoDiv").innerHTML = "";
	document.getElementById("demoDiv").style.background = "url(images/loading.gif) 50% 50% no-repeat";	
	
	if(correctFlashPlayer){
		// Using the flash object from the swfobject.js file
		var so = new SWFObject("swf/"+demoName+".swf", "err", "300", "250", "8.0.0");
		so.write("demoDiv");

	} else {
		document.getElementById("demoDiv").innerHTML = '<p class="noFlashPlayer">A section of this page requires<br />that you have at least Flash Player 8 installed.</p>';	
	}
	document.getElementById("demoDiv").focus(); // Cheap trick to take focus off images/links.
}
// --------------------------------------------------


// Resest all demo entries
function resetDemosEntries(){	
	// Remove all borders and red buttons
	var aObjEntries = getElementsByClassName(document, "DIV", "demoEntry");
	var aObjAddBtns = getElementsByClassName(document, "IMG", "btnAddToPhone");
	if (aObjEntries.length > 0){
		for(var x=0; x < aObjEntries.length; x++){
			aObjEntries[x].className = "demoEntry";
			aObjAddBtns[x].src = "images/btnAddtoPhoneLightGrey.gif";
		}
	}	
}
// --------------------------------------------------


function trackDemo(objLink){
	
	// Loading same page into iFrame for tracking
	document.getElementById("trackerFrame").setAttribute("src",objLink.href);	
	
}


// Plays Flash demos, when image or link is clicked
function showDemo(objLink, demoName, levels){
	
	// Reset all
	resetDemosEntries();
	
	// Give this demo entry a border
	var thisObjEntry = objLink;
	for(var x = 0; x < levels; x++ ){
		thisObjEntry = thisObjEntry.parentNode;
	}	
	thisObjEntry.className += " entryOn" ;
	
	// Make button for this demo red
	var objBtns = getElementsByClassName(thisObjEntry, "IMG", "btnAddToPhone");
	objBtns[0].src = "images/btnAddtoPhone.gif";
	
	// Set demo screen to this Flash movie
	playDemo(demoName);
	
	// Do tracking
	trackDemo(objLink);
}
// --------------------------------------------------


// Display the default holding image
function setUpDemoScreen(){
	if(document.getElementById("demoDiv")){
		document.getElementById("demoDiv").innerHTML = '<img src="images/animated.gif" title="Pick a demo to see how Mobile Internet looks on a phone" alt="Pick a demo to see how Mobile Internet looks on a phone" width="300" height="250" style="display: block;" />';
	}
}
// --------------------------------------------------

/* PL: Got picked up during QA; removed and fixed in stylesheet
function setUpH1TagLink(){
	// Adding a normal a tag caused CSS errors.
	$('.linkH1').bind('click',function(){
		location.href = "http://online.vodafone.co.uk/dispatch/Portal/appmanager/vodafone/wrp?_nfpb=true&_pageLabel=templateBlank&pageID=MI_0001";		
	});
}
*/

// Setting up events on the page
addLoadEvent(setUpH1TagLink);

// Window onload event
function addLoadEvent(func){
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    }
    else {
        window.onload = function(){
            oldonload();
            func();
        }
    }
}

	
	
	