// catalogy/lib/stdio.js v1.1
// CompuCity - compucity.com - compiled 26-Jun-2011
// copyright (c) usc (uk) ltd 2011

var IE=navigator.appName.indexOf('Internet Explorer')>-1
var domain='compucity.com'
var actpage=''

function ById(n) {var e=n?document.getElementById(n):null;return e?e:null}
function setme(u) {self.location.href='/'+u+'.html'}
function get_param() {var u=self.location.href,x=u.lastIndexOf('?');if(x<0) x=u.lastIndexOf('#');return x<0?'':unescape(u.substr(x+1))}
function put_mt(n) {document.writeln(get_mt(n))}
function put_em(n) {document.writeln(get_em(n))}
function get_mt(n) {return '<a href="mailto:%n">%n</a>'.replace(/%n/g,get_em(n))}
function get_em(n) {return n+String.fromCharCode(64)+domain}
function highlight_active() {
	var a=0,t,u=self.location.href;u=u.substr(u.lastIndexOf('/')+1);u=u!=''&&u!='index.html'?u:'/';
	var x=u.search(/(\#|\?)/);if (x>-1) {u=u.substr(0,x)}
	var r='',c
	for (a=1;a<=(actpage&&u!=actpage?2:1);a++) {
	    if (a==2) u=actpage
	    var l,c='active'+(a==2?'2':''),t=new RegExp(u+'$',''),v=new RegExp(u,'ig'),ls=document.getElementsByTagName('li')
		for (x=0;x<ls.length;x++) {ls[x].className+=ls[x].innerHTML.indexOf(u)>=0?' '+c:''}
		for (x=0;x<document.links.length;x++) {l=document.links[x];l.className+=l.href.search(t)<0?'':' '+c}
	}
}
// cookies.js v1: root-path cookie

function killCookie(n) {writeCookie(n,'')}
function writeCookie(n,v) {var t=new Date(),d=v==''?-1:(365*24*60*60*1000);t.setTime(t.getTime()+d);document.cookie=n+'='+escape(v)+';expires='+t.toGMTString()+';path=/'}
function readCookie(n) {var i,c,d=document.cookie.split(';');for(i=0;i<d.length;i++) {c=d[i].replace(/^ /g,'');if (c.indexOf(n+'=')==0) return unescape(c.substring(n.length+1,c.length))}return null}
function init(s,c,k,scroll_banner,pg_ctr) {
	var x,A,L,U

	if (window.init_forms) init_forms()
	if (window.init_slides) init_slides('slide-holder','',2000,3600,10,7,3);
	if (ById('news')) init_slides('news','',-3600,3600,10,70,3);
	if (scroll_banner) setTimeout("scrollbanner()","2000")
	var I=ById('interest');if (I) if (I.options[k-1]) I.options[k-1].selected=true;
	if (s) {
	    L=ById('topmenu').getElementsByTagName('LI');
	    s=s=='About'&&c=='Contact'?'Contact':s;
	    for(x=0;x<L.length;x++) {
	        A=L[x].getElementsByTagName('A')[0].innerHTML
	        O=L[x].className;O=O?O:' - '
			L[x].className=L[x].className.replace(/active/gi,'')
	        if (A==s) {L[x].className+=' active'}
		}
		A=ById('ss-'+s.toLowerCase());
		if (A) A.className+=' active'
	}
	L=self.location.href.split('/');
	U=L[L.length-2]+'/'+L[L.length-1]
	if (U.charAt(U.length-1)!='/') {
		L=ById('sidemenu').getElementsByTagName('A')
		for(x=0;x<L.length;x++) if (L[x].href.indexOf(U)>-1) L[x].className+=' active'
	}
	ById('debug').innerHTML='<font color=gray>Resolution: </font>'+screen.width+' x '+screen.height
	visited(pg_ctr);
}
function tel_mo() {}
function tel_mu() {}

// BANNER SCROLL

var scDIV=null,scIMG=null
var IMG_SCROLL_X=0,IMG_SCROLL_INC=1,IMG_SCROLL_DELAY=20
function scrollbanner() {
	if (!scDIV) {scIMG=ById('img-to-scroll');scDIV=ById('img-holder')}
	var y=0,delay=IMG_SCROLL_DELAY,delay2=5
	scrollbanner_move(IMG_SCROLL_X)
	IMG_SCROLL_X+=IMG_SCROLL_INC
	if (IMG_SCROLL_X>scIMG.clientHeight-scDIV.clientHeight) {
		for(x=IMG_SCROLL_X;x>0;x-=10) {
		    setTimeout("scrollbanner_move("+x+")",2000+(++y*delay2))
		}
		setTimeout("scrollbanner_move(0)",2000+(++y*delay2))
		delay=5000+(++y*delay2)
	}
	setTimeout("scrollbanner()",delay)
}
function scrollbanner_move(x) {
	scIMG.style.marginTop=-x+'px';
	if (x==0) IMG_SCROLL_X=0
}

// VISITED WIDGET

var vmax_pages=25
var HTM=[]
HTM['visit']='<div class="visit-stats">%V</div>'
HTM['seen']='<span><i>Pages seen:</i><b>%IP%</b></span> <div class="bar vyes" style="width:%IWpx"></div>'
HTM['unseen']='<span><i>Not yet seen:</i><b>%JP%</b></span> <div class="bar vno" style="width:%JWpx"></div>'
HTM['stats']='<u onclick="self.location.href=\'/site-map.html?stats\'">%S1%S2</u><div class="clear"></div>'
HTM['congrats']='<h4>Congratulations!!</h4><p>You have now visited all the pages on this website, and can claim a prize! Contact us for details..</p>'
HTM['recent']='<h5>Recently Visited Pages:</h5><ul>%V</ul>'
HTM['clear']='<p><a href="javascript:visit_clr()">Clear Page Stats</a></p>'
HTM['welcome']='<h4>Welcome to our website!</h4><p>We hope you find your visit informative.</p>Remember, if you cannot find what you\'re looking for, simply give us a call, or fill-out an enquiry..</p>'

function visit_clr() {killCookie('recent');killCookie('pages');killCookie('percent');self.location.href=self.location.href}
function visited(PG) {
	var x,y=0,i,r='',s,u='',v=readCookie('pages');
	PG=parseInt(PG)
	if (!v) {v='';for(x=1;x<=vmax_pages;x++) v+=(v!=''?'|':'')+(x+'')+'=0'}

	// page ctrs
	v=v.split('|');
	for(i in v) {
		s=v[i].split('=')
		s[0]=parseInt(s[0])
		s[1]=parseInt(s[1]=='NaN'?0:s[1]);
		if (s[0]==PG) {s[1]++;y++}
		r+=s[0]?(r?'|':'')+s[0]+'='+s[1]:''
	}
	writeCookie('pages',r)
	
	// recent array
	r=PG
	var a=(readCookie('recent')+',,,,,,').split(',')
	for(x=0;x<5;x++) {
	    a[x]=((a[x]+'')==''?-1:a[x])
	    if (parseInt(a[x])!=PG&&a[x]>-1) r+=','+a[x]
	}
	v=document.title.split('|');v=v[v.length-1]
	writeCookie('pg'+PG,v+'='+self.location.href)
	writeCookie('recent',r)
	
	// recent list
	var y=0,a=(readCookie('recent')+',,,,,,').split(',')
	r='';
	for(x=0;x<5;x++) {
	    if (a[x]) {
	        v=readCookie('pg'+a[x]).split('=')
	    	u+='<li><a href="'+v[1]+'">'+v[0]+'</a></li>'
	    	y++
		}
	}

	// stats

	if (y<=1) {u='';r=HTM['welcome']}
	else {
		u=HTM['recent'].replace('%V',u);
		var ip,jp,i=0,j=0,a=readCookie('pages').split('|')
		for(x=0;x<a.length;x++) if (parseInt(a[x].split('=')[1])>0) i++;
		ip=parseInt((i/vmax_pages)*100);j=vmax_pages-i;jp=100-ip
		if (ip>=100&&readCookie('percent')!=100) r=HTM['congrats'];
		else r+=HTM['stats'].replace('%S1',HTM['seen']).replace('%S2',jp>0?HTM['unseen']:'').replace(/%IP/g,ip).replace(/%JP/g,jp).replace(/%IW/g,i*2).replace(/%JW/g,j*2)
		writeCookie('percent',ip)
		r+=HTM['clear']
	}
	v=ById('visited');if (v) v.innerHTML=u+HTM['visit'].replace('%V',r)
}
// lib forms.js v0.6

var tel='312-346-2048'

var frmID=''
var frmdefaultmsg='(enter brief message)'
var flds=new Array
var frmBtnColor;

flds['standard']='Name|Company|E-Mail|Phone'
flds['contact']='btn=Send Enquiry|$standard-form|$subject-combo-form|$brief-message-form'
flds['subject-combo']='Interest=opts:Subject,Product Enquiry,General Enquiry;;1,Credit Card Refund Request,Returns Authorisation Request,Feedback'
flds['brief-message']='Brief Message=txtbox:Message'

flds['CLASS']='border'
flds['B-CLASS']='btn %C'
flds['LINE']='--------------------------------------------------------'
flds['LABEL']='<label for="%i">%n%nx</label>'
flds['HIDDEN']='<input type="hidden" %NI value="" />'

flds['chkbox']='%ICchkbox" type="checkbox" %NI /><a href="javascript:form_checked(\'%n\')">%v</a>'
flds['txtbox']='%L<textarea class="%C" %NI onkeyup="chktyping(this)"%blur%foc>%XV</textarea>'
flds['input']='%L%IC%C" maxlength="40" %NI%blur%foc value="%XV" />'
flds['select']='%L<select class="%C" %NI%blur>%v</select>'
flds['btn-left']='%ICfl-l %BC" %BT<< %n" onclick="setme(\'%v\')" />'
flds['btn-right']='%ICfl-r %BC" %BT %n >>" onclick="setme(\'%v\')" />'
flds['btn-submit']='%ICfl-r %BC" %BT %n >> " id="submit-btn" onclick="form_send(\'%ID\')" />'
flds['blur']=' onblur="form_blur(this)"'
flds['foc']=' onfocus="form_foc(this)"'

function init_forms() {var x,f=document.getElementsByTagName('form');for (x=0;x<f.length;x++) if (f[x].id.search(/(.*?)-form/)>=0) form_draw(RegExp.$1)}
function form_blur(i) {var v=i.value,e=0,c1='filled',c2='error',c=i.className;if (v=='('+i.id+')') v='';if (i.id=='email'&&!isEmail(v)) e=1;if (i.id=='phone'&&!isTel(v)) e=1;if (i.id=='name'||i.id=='company') chknam();c=v==''?c.replace(c1,''):(c.indexOf(c1)<0?c+' '+c1:c);c=e==0?c.replace(c2,''):(c.indexOf(c2)<0?c+' '+c2:c);i.className=c;i.value=v==''?'('+i.id+')':v;form_enable(e==0?1:0)}
function form_foc(i) {if (i.value=='('+i.id+')') i.value=''}
function form_chkbox(v) {var o=(v+';;').split(';');return flds['chkbox'].replace(/%n/g,o[0]).replace(/%v/g,o[1])}
function form_options(opts) {var o=opts.split(','),x,v,r='';for (x=1;x<o.length;x++) {v=(o[x]+';;').split(';');if (v[0].charAt(0)=='-') {v[0]=flds['LINE'];v[1]=''};if (v[0].charAt(0)=='[') r+='\n\t<optgroup label="'+v[0].substr(1)+'">'; else if (v[0].charAt(0)==']') r+='\n\t</optgroup>'; else r+='\n\t<option'+(v[2]==1?' selected':'')+(v[1]!=''?' value="'+v[1]+'"':'')+'>'+v[0]+'</option>'};return flds['select'].replace(/%n/g,o[0]).replace(/%v/,r).replace(/%i/g,o[0].toLowerCase())}
function form_gather(v) {var r,s,x;do {r=null;r=v.match(/\$(.*?)-form/gi);if (!r) return v;for (x=0;x<r.length;x++) {var d=r[x].replace(/\$|-form/g,'');s=ById(frmID+'-'+d)?ById(frmID+'-'+d).innerHTML:flds[d];v=v.replace(r[x],!s?'':s)}} while(r);return v}
function form_checked(v) {ById(v).checked=!ById(v).checked}
function form_sub(r) {return r.replace(/%IC/g,'<input class="').replace(/%BT/g,'type="button" value="').replace(/%BC/g,flds['B-CLASS']).replace(/%C/g,flds['CLASS'])}
function form_send(ID) {var f=ById(ID),n=ById('name').value!='',e=isEmail(ById('email').value),m=chkmsg(),s;if (m&&n&&e) {form_enable(0);f.submit()} else if (m) {s='C o n t a c t     I n f o r m a t i o n\n______________________________\n\nPLEASE FILL IN ENOUGH DETAILS\nFOR US TO CONTACT YOU\n\ne.g. Your Name and Email address'+(e?'':'\n\nNOTE: your email address must\nbe in the correct format');alert(s)}}
function form_enable(e) {ById('submit-btn').style.backgroundColor=e==0?'gray':frmBtnColor;ById('submit-btn').disabled=e==0?'disabled':''}
function form_draw(frm) {
	frmID=frm
	var x,y,v,r='',h='',b=''
	var txt=form_gather(ById(frm+'-form-defs')?ById(frm+'-form-defs').innerHTML:'$'+frm+'-form');
	var defs=txt.split(/\n|\|/)
	for(x=0;x<defs.length;x++) {
	    if (defs[x]) {
		    var fx=(defs[x]+'==').split('=');
			if (fx[0]=='hidden') {
			    v=fx[1].split(',')
				for(y=0;y<v.length;y++) h+=flds['HIDDEN'].replace(/%n/g,v[y]).replace(/%i/g,v[y].toLowerCase())
			} else if (fx[0].search(/^btn/)>-1) {
			    v=(fx[1]+';;').split(';')
		        b+=flds[fx[0]=='btn'?'btn-submit':fx[0]].replace(/%n/g,v[0]).replace(/%v/g,v[1])
			} else if (fx[0].charAt(0)=='~') {
				flds[fx[0].substr(1)]=fx[1]
			} else {
				fx[1]=(fx[1].indexOf(':')<0?'input:':'')+(fx[1]==''?fx[0]:fx[1])

				v=(fx[1]+'::::').split(':')
				if (v[0]=='opts') {r+=form_options(v[1]);v[1]=v[1].split(',')[0]}
				else if (v[0]=='chkbox') {r+=form_chkbox(v[1])}
				else {r+=flds[v[0]]}
				fx[1]=v[1].replace(/e-mail/gi,'Email')
				fx[2]=v[2]
				fx[3]=''

			}
			r=r.replace(/%BLUR/ig,flds['blur']).replace(/%FOC/ig,flds['foc'])
			r=r.replace(/%L/g,flds['LABEL'])
			r=r.replace(/%NI/g,'name="%n" id="%i"')
			r=r.replace(/%xv/gi,'(%i)').replace(/%i/g,fx[1].toLowerCase())
			r=r.replace(/%nx/g,fx[2]==''?'':' <span>'+fx[2]+'</span>')
			r=form_sub(r.replace(/%n/g,fx[1]).replace(/%v/g,fx[3])+'\n')
		}
	}
	
	ById(frm+'-form').action='/mail.php'
	ById('data2').innerHTML=form_sub(r);
	ById('data3').innerHTML=h+form_sub(b.replace(/%ID/g,frm+'-form'))
	x=get_param();if (x.search(/\d+/)>-1) ById('interest').options[x].selected=true
	frmBtnColor=ById('submit-btn').style.backgroundColor;
}

// form functions // added 25/03/2009 - anti-spam counter-measures

var chkbusy=false,chk_buffer=''
var url_dict='www.|http:|ftp:'.split('|')
var nam_dict='google|microsoft'.split('|')
var msg_dict='viagra|cialis|prescription drugs|levitra|vaccine|drugs|no prescription|dialysis|Lead Generation|cigarettes|Internet Marketing|s.e.o.|seo|search engine|white hat'.split('|')
var this_url=self.location.href
function isEmail(e) {return !(e==''||e.indexOf(' ')>-1||e.indexOf('@')<0||e.indexOf('.')<0||e.lastIndexOf('.')>e.length-2)}
function isTel(t) {return (t.substr(0,5)!='12345')&&(t==''||t.charAt(0)=='0'||t.charAt(0)=='+')?true:false}
function nospc(v) {return v.replace(/[\t\n \r\.-_\+]/g,'')}
function notag(v) {return v.replace(/<(.*?)>/g,'')}
function chkdict(i,d) {var x,v=nospc(i.toLowerCase());chk_buffer='';if (v) for (x=0;x<d.length;x++) if (v.indexOf(nospc(d[x].toLowerCase()))>-1) {chk_buffer=d[x];return d[x]};return ''}
function chktyping(m) {m.value=notag(m.value);chkta(m,0)}
function chkmsg() {return ById('message')?chkta(ById('message'),1):true}
function chkalert(m) {alert(m.replace(/%buffer/gi,chk_buffer).replace(/%tel/gi,tel));if (m.indexOf('website')>-1) {ById('name').value=ById('email').value=''}}
function chktb(m) {chknam();chkta(m,1);if (ById('msgl')) ById('msgl').innerHTML='<br><font color=red size=1><b>'+m.value.length+'</b> chars, <b><font color=blue>200</font></b> max</font>'}
function chknam() {if (chkdict(ById('name').value+ById('company').value,nam_dict)!='') {chkalert("Are you really from %buffer ?\n\nWe are interested to hear from you.\n\nPlease call %tel and we will be happy to answer your query.\n\nThanks!");ById('name').value=ById('company').value=''}}
function chkta(m,mode) {
	var t,v=m.value,tv=v.toLowerCase().replace(frmdefaultmsg,'').replace('('+m.id+')',''),r=false,s=true
	if (!chkbusy) {
		chkbusy=true
		if (nospc(tv)==''&&mode==1) chkalert("You have not typed a message!")
		else if (chkdict(tv,msg_dict)!='') chkalert("We are not particularly interested in '%buffer'\n\nPlease try another website.\n\nThanks!")
	    else if (chkdict(tv,url_dict)!='') chkalert("Please do not use this form to send URLs.\n\nTo tell us about your website, we prefer\nyou call us on %tel or use ordinary e-mail\ninstead.\n\nThanks!")
		else {
			if (v.length>200) {v=v.substr(0,200)}
			if (v!=m.value) {m.value=v;alert("Please do not use this form for sales,\nlong emails, emails containing URLs or spam.\n\nIf it is important, please call us now\non:\n\n"+tel+"\n\nThank you\n\n")}
			else r=true
		}

		if (!r&&mode==0) {m.value=v}
		if (chk_buffer!='') {m.value=m.value.replace(chk_buffer,'')}
		m.value=notag(m.value)
		chkbusy=false
	}
	return r
}
