﻿/*
    Main
*/
if (document.layers)
document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT)
document.onmouseover=hidestatus
document.onmouseout=hidestatus

function hidestatus()
{
    window.status='.:: Business Technology Solution ::.'
    return true
}

function right(e) 
{
    if (navigator.appName == 'Netscape' && (e.which == 3 || e.which == 2))
        return false;
    else if (navigator.appName == 'Microsoft Internet Explorer' && (event.button == 2 || event.button == 3)) 
    {
        return false;
    }
    return true;
}
        
/*
    Flash Slide Print
*/

function PrintFlash(Src, Width, Height)
{
	if(!Src || !Width || !Height)
	{
		return null;
	}

	var ClassID  = "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000";
	var CodeBase = "http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0";
	var WindowsMode = "transparent";
	var Quality  = "high";
	var PlugIn   = "http://www.macromedia.com/go/getflashplayer";
	var Type     = "application/x-shockwave-flash";

	var Obj = "<object classid='" + ClassID + "' "
			 + "codebase='" + CodeBase + "' "
			 + "width='" + Width + "' height='" + Height + "'> "
			 + "<param Name='wmode' Value='" + WindowsMode + "'>"
			 + "<param Name='movie' Value='" + Src + "'>"
			 + "<param Name='quality' Value='" + Quality + "'>"
			 + "<embed src='" + Src + "' "
			 + "quality='" + Quality + "' pluginspage='" + PlugIn + "' type='" + Type + "' "
			 + "width='" + Width + "' height='" + Height + "'></embed></object>";

	PrintObject(Obj);
}
function PrintObject(Data)
{
	document.write (Data);
}

/*
    Picture View
*/

var featuredcontentslider = 
{
    ajaxloadingmsg:'<div style="margin: 0px 0px 0px 0px"><img src="loading.gif" /> Fetching slider Contents. Please wait...</div>',
    bustajaxcache:true, 
    enablepersist:true,
    settingcaches:{ },

    jumpTo:function(fcsid, pagenumber)
    {
	    this.turnpage(this.settingcaches[fcsid], pagenumber)
    },

    ajaxconnect:function(setting)
    {
	    var page_request = false
	    if (window.ActiveXObject)
	    {
		    try 
		    {
		        page_request = new ActiveXObject("Msxml2.XMLHTTP")
		    } 
		    catch (e)
		    {
			    try
			    {
			    page_request = new ActiveXObject("Microsoft.XMLHTTP")
			    }
			    catch (e){ }
		    }
	    }
	    else if (window.XMLHttpRequest) // if Mozilla, Safari etc
		    page_request = new XMLHttpRequest()
	    else
		    return false
	    var pageurl = setting.contentsource[1]
	    page_request.onreadystatechange = function()
	    {
		    featuredcontentslider.ajaxpopulate(page_request, setting)
	    }
	    document.getElementById(setting.id).innerHTML = this.ajaxloadingmsg
	    var bustcache = (!this.bustajaxcache)? "" : (pageurl.indexOf("?") != -1)? "&" + new Date().getTime() : "?" + new Date().getTime()
	    page_request.open('GET', pageurl+bustcache, true)
	    page_request.send(null)
    },

    ajaxpopulate:function(page_request, setting)
    {
	    if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1))
	    {
		    document.getElementById(setting.id).innerHTML = page_request.responseText
		    this.buildpaginate(setting)
	    }
    },

    buildcontentdivs:function(setting)
    {
	    var alldivs = document.getElementById(setting.id).getElementsByTagName("div")
	    for (var i = 0; i < alldivs.length; i++){
		    if (this.css(alldivs[i], "contentdiv", "check"))
		    { //check for DIVs with class "contentdiv"
			    setting.contentdivs.push(alldivs[i])
			    alldivs[i].style.display = "none" //collapse all content DIVs to begin with
		    }
	    }
    },

    buildpaginate:function(setting)
    {
	    this.buildcontentdivs(setting)
	    var sliderdiv = document.getElementById(setting.id)
	    var pdiv = document.getElementById("paginate-" + setting.id)
	    var phtml = ""
	    var toc = setting.toc
	    var nextprev = setting.nextprev
	    if (typeof toc == "string" && toc != "markup" || typeof toc == "object")
	    {
		    for (var i = 1; i <= setting.contentdivs.length; i++){
			    phtml += '<a href="#' + i + '" class="toc">' + (typeof toc == "string"? toc.replace(/#increment/, i) : toc[i-1]) + '</a>'
		    }
		    phtml = (nextprev[0] != ''? '<a href="#prev" class="prev">' + nextprev[0] + '</a> ' : '') + phtml + (nextprev[1] != ''? '<a href="#next" class="next">' + nextprev[1] + '</a>' : '')
		    pdiv.innerHTML = phtml
	    }
	    var pdivlinks = pdiv.getElementsByTagName("a")
	    var toclinkscount = 0 //var to keep track of actual # of toc links
	    for (var i = 0; i < pdivlinks.length; i++){
		    if (this.css(pdivlinks[i], "toc", "check"))
		    {
			    if (toclinkscount > setting.contentdivs.length - 1){ //if this toc link is out of range (user defined more toc links then there are contents)
				    pdivlinks[i].style.display = "none" //hide this toc link
				    continue
			    }
			    pdivlinks[i].setAttribute("rel", ++toclinkscount) //store page number inside toc link
			    pdivlinks[i][setting.revealtype] = function()
			    {
				    featuredcontentslider.turnpage(setting, this.getAttribute("rel"))
				    return false
			    }
			    setting.toclinks.push(pdivlinks[i])
		    }
		    else if (this.css(pdivlinks[i], "prev", "check") || this.css(pdivlinks[i], "next", "check"))
		    { //check for links with class "prev" or "next"
			    pdivlinks[i].onclick = function()
			    {
				    featuredcontentslider.turnpage(setting, this.className)
				    return false
			    }
		    }
	    }
	    this.turnpage(setting, setting.currentpage, true)
	    if (setting.autorotate[0])
	    { //if auto rotate enabled
		    pdiv[setting.revealtype] = function()
		    {
			    featuredcontentslider.cleartimer(setting, window["fcsautorun" + setting.id])
		    }
		    sliderdiv["onclick"] = function()
		    { //stop content slider when slides themselves are clicked on
			    featuredcontentslider.cleartimer(setting, window["fcsautorun"+setting.id])
		    }
		    setting.autorotate[1] = setting.autorotate[1] + (1/setting.enablefade[1] * 50) //add time to run fade animation (roughly) to delay between rotation
	     this.autorotate(setting)
	    }
    },

    urlparamselect:function(fcsid)
    {
	    var result = window.location.search.match(new RegExp(fcsid + "=(\\d+)", "i")) //check for "?featuredcontentsliderid=2" in URL
	    return (result == null)? null : parseInt(RegExp.$1) //returns null or index, where index (int) is the selected tab's index
    },

    turnpage:function(setting, thepage, autocall)
    {
	    var currentpage = setting.currentpage //current page # before change
	    var totalpages = setting.contentdivs.length
	    var turntopage = (/prev/i.test(thepage))? currentpage - 1 : (/next/i.test(thepage))? currentpage+1 : parseInt(thepage)
	    turntopage = (turntopage < 1)? totalpages : (turntopage > totalpages)? 1 : turntopage //test for out of bound and adjust
	    if (turntopage == setting.currentpage && typeof autocall == "undefined") //if a pagination link is clicked on repeatedly
		    return
	    setting.currentpage = turntopage
	    setting.contentdivs[turntopage-1].style.zIndex = ++setting.topzindex
	    this.cleartimer(setting, window["fcsfade" + setting.id])
	    setting.cacheprevpage = setting.prevpage
	    if (setting.enablefade[0] == true)
	    {
		    setting.curopacity = 0
		    this.fadeup(setting)
	    }
	    if (setting.enablefade[0] == false)
	    { //if fade is disabled, fire onChange event immediately (verus after fade is complete)
		    setting.contentdivs[setting.prevpage - 1].style.display = "none" //collapse last content div shown (it was set to "block")
		    setting.onChange(setting.prevpage, setting.currentpage)
	    }
	    setting.contentdivs[turntopage - 1].style.visibility = "visible"
	    setting.contentdivs[turntopage - 1].style.display = "block"
	    if (setting.prevpage <= setting.toclinks.length) //make sure pagination link exists (may not if manually defined via "markup", and user omitted)
		    this.css(setting.toclinks[setting.prevpage - 1], "selected", "remove")
	    if (turntopage <= setting.toclinks.length) //make sure pagination link exists (may not if manually defined via "markup", and user omitted)
		    this.css(setting.toclinks[turntopage - 1], "selected", "add")
	    setting.prevpage = turntopage
	    if (this.enablepersist)
		    this.setCookie("fcspersist" + setting.id, turntopage)
    },

    setopacity:function(setting, value)
    { //Sets the opacity of targetobject based on the passed in value setting (0 to 1 and in between)
	    var targetobject = setting.contentdivs[setting.currentpage - 1]
	    if (targetobject.filters && targetobject.filters[0])
	    { //IE syntax
		    if (typeof targetobject.filters[0].opacity == "number") //IE6
			    targetobject.filters[0].opacity = value * 100
		    else //IE 5.5
			    targetobject.style.filter = "alpha(opacity=" + value * 100 + ")"
	    }
	    else if (typeof targetobject.style.MozOpacity != "undefined") //Old Mozilla syntax
		    targetobject.style.MozOpacity = value
	    else if (typeof targetobject.style.opacity != "undefined") //Standard opacity syntax
		    targetobject.style.opacity = value
	    setting.curopacity = value
    },

    fadeup:function(setting)
    {
	    if (setting.curopacity < 1)
	    {
		    this.setopacity(setting, setting.curopacity + setting.enablefade[1])
		    window["fcsfade"+setting.id]=setTimeout(function()
		    {
		        featuredcontentslider.fadeup(setting)
		    }, 
		    50)
	    }
	    else
	    { //when fade is complete
		    if (setting.cacheprevpage != setting.currentpage) //if previous content isn't the same as the current shown div (happens the first time the page loads/ script is run)
			    setting.contentdivs[setting.cacheprevpage - 1].style.display = "none" //collapse last content div shown (it was set to "block")
		    setting.onChange(setting.cacheprevpage, setting.currentpage)
	    }
    },

    cleartimer:function(setting, timervar)
    {
	    if (typeof timervar != "undefined")
	    {
		    clearTimeout(timervar)
		    clearInterval(timervar)
		    if (setting.cacheprevpage != setting.currentpage)
		    { //if previous content isn't the same as the current shown div
			    setting.contentdivs[setting.cacheprevpage - 1].style.display = "none"
		    }
	    }
    },

    css:function(el, targetclass, action)
    {
	    var needle = new RegExp("(^|\\s+)" + targetclass + "($|\\s+)", "ig")
	    if (action == "check")
		    return needle.test(el.className)
	    else if (action == "remove")
		    el.className = el.className.replace(needle, "")
	    else if (action == "add")
		    el.className += " " + targetclass
    },

    autorotate:function(setting)
    {
     window["fcsautorun" + setting.id] = setInterval(function()
        {
            featuredcontentslider.turnpage(setting, "next")
        }, 
        setting.autorotate[1])
    },

    getCookie:function(Name)
    { 
	    var re = new RegExp(Name + "=[^;]+", "i"); //construct RE to search for target name/value pair
	    if (document.cookie.match(re)) //if cookie found
		    return document.cookie.match(re)[0].split("=")[1] //return its value
	    return null
    },

    setCookie:function(name, value)
    {
	    document.cookie = name + "=" + value

    },


    init:function(setting)
    {
	    var persistedpage = this.getCookie("fcspersist" + setting.id) || 1
	    var urlselectedpage = this.urlparamselect(setting.id) //returns null or index from: mypage.htm?featuredcontentsliderid=index
	    this.settingcaches[setting.id] = setting //cache "setting" object
	    setting.contentdivs = []
	    setting.toclinks = []
	    setting.topzindex = 0
	    setting.currentpage = urlselectedpage || ((this.enablepersist)? persistedpage : 1)
	    setting.prevpage = setting.currentpage
	    setting.revealtype = "on" + (setting.revealtype || "click")
	    setting.curopacity = 0
	    setting.onChange = setting.onChange || function(){ }
	    if (setting.contentsource[0] == "inline")
		    this.buildpaginate(setting)
	    if (setting.contentsource[0] == "ajax")
		    this.ajaxconnect(setting)
    }
}

/*
    Open Window
*/

function OpenWindow(Url, pWidth, pHeight, pTop, pLeft)
{
     // set the width and height
     var mWidth = pWidth;
     var mHeight = pHeight;
     // set window position
     var fTop = pTop;
     var fLeft = pLeft;
     // set other attributes
     var hToolbar = 'no';
     var hLocation = 'no';
     var hDirectories = 'no';
     var hStatus = 'no';
     var hMenubar = 'no';
     var hScrollbar = 'yes';
     var iResize = 'yes';
     
     // attributes put together
     var Attribute = 'width=' + mWidth + ',height=' + mHeight + ',top=' + fTop + ',screenY=' + fTop + ',left=' + fLeft + ',screenX=' + fLeft;
     Attribute += ',toolbar=' + hToolbar + ',location=' + hLocation + ',directories=' + hDirectories + ',status=' + hStatus;
     Attribute += ',menubar=' + hMenubar + ',scrollbars=' + hScrollbar + ',resizable=' + iResize;
     // open window
     window.open(Url,'',Attribute);
}

/*
    Image Over
*/

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_preloadImages() { //v3.0

    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
