SUI.util.DDInit = function(secs,els,callback){
	/*
		secs = [classname,tagname],
		els = [classname,tagname]
		callback function gets passed this: 
		{
			secID:[elID,elID]
			sec2ID:[]
		}
	*/
	var Dom = YAHOO.util.Dom;
	var Event = YAHOO.util.Event;
	var DDM = YAHOO.util.DragDropMgr;
	DDM.useShim = true;
	
	var afterDrop = function(){
		var pack = {};
		var groups = Dom.getElementsByClassName(secs[0],secs[1]);
        for (i=0;groups[i];i++) {
			//var elist = [];
			if(groups[i].id){
				pack[groups[i].id] = [];
				var links = Dom.getElementsByClassName(els[0],els[1],groups[i]);
				for(var ii=0;links[ii];ii++){
					if(links[ii].id){
						pack[groups[i].id].push(links[ii].id);
					}
				}
			}
        }
        callback(pack);
	};
	
	var regSecs = function(){
		var groups = Dom.getElementsByClassName(secs[0],secs[1]);
        for (i=0;groups[i];i++) {
			if(groups[i].id){
				new YAHOO.util.DDTarget(groups[i].id, secs[0]);
				var links = Dom.getElementsByClassName(els[0],els[1],groups[i]);
				for(var ii=0;links[ii];ii++){
					if(links[ii].id){
						var hdl = Dom.getElementsByClassName('handle',null,links[ii]);
						var dd = new SUI.util.DDInit.drag(links[ii].id, secs[0]);
						//dd.centerFrame = true;
						//dd.resizeFrame = false;
						if(hdl && hdl[0]){
							hdl[0].id = links[ii].id + '-hdl';
							dd.setHandleElId(hdl[0]);
						}
					}
				}
			}
        }
	};

	SUI.util.DDInit.drag = function(id, sGroup, config){
		SUI.util.DDInit.drag.superclass.constructor.call(this, id, sGroup, config);
		var dragEl = this.getDragEl();
		var clickEl = this.getEl();
		var w = (clickEl.offsetWidth > 500 ? clickEl.offsetWidth : clickEl.offsetWidth);
			Dom.setStyle(dragEl, "cursor", "move");
			Dom.setStyle(dragEl, "width", w+"px");
			Dom.setStyle(dragEl, "height", clickEl.offsetHeight+"px");
			Dom.setStyle(dragEl, "border", "1px solid #ddd");
			Dom.setStyle(dragEl, "zIndex", 50002);
		this.goingUp = false;
		this.lastY = 0;
	};
	YAHOO.extend(SUI.util.DDInit.drag, YAHOO.util.DDProxy, {
		startDrag: function(x, y) {
			// make the proxy look like the source element
			var dragEl = this.getDragEl();
			var clickEl = this.getEl();
			Dom.setStyle(clickEl, "visibility", "hidden");
			dragEl.innerHTML = clickEl.innerHTML;
			// border: 1px solid #ddd; background: #dcdcdc url(images/pagebuilder/basic-element-bg.jpg) repeat-x left bottom;
			dragEl.className = clickEl.className+' dragging';
		},

		endDrag: function(e) {

			var srcEl = this.getEl();
			var proxy = this.getDragEl();
	        

			// Show the proxy element and animate it to the src element's location
			Dom.setStyle(proxy, "visibility", "");
			var a = new YAHOO.util.Motion( 
				proxy, { 
					points: { 
						to: Dom.getXY(srcEl)
					}
				}, 
				0.2, 
				YAHOO.util.Easing.easeOut 
			)
			var proxyid = proxy.id;
			var thisid = this.id;

			// Hide the proxy and show the source element when finished with the animation
			a.onComplete.subscribe(function() {
					Dom.setStyle(proxyid, "visibility", "hidden");
					Dom.setStyle(proxyid, "left", "-10000");
					Dom.setStyle(proxyid, "top", "-10000");
					//Dom.setStyle(proxyid, "width", "1px");
					//Dom.setStyle(proxyid, "height", "1px");
					proxy.innerHTML = '';
					Dom.setStyle(thisid, "visibility", "");
					Dom.removeClass(document.getElementById(thisid).parentNode, 'over');
					afterDrop();
				});
			a.animate();
		},

		onDragDrop: function(e, id) {
			var srcEl = this.getEl();
			var destEl = Dom.get(id);
			// If there is one drop interaction, the li was dropped either on the list,
			// or it was dropped on the current location of the source element.
			if (DDM.interactionInfo.drop.length === 1 && srcEl.className != destEl.className) {

				// The position of the cursor at the time of the drop (YAHOO.util.Point)
				var pt = DDM.interactionInfo.point; 

				// The region occupied by the source element at the time of the drop
				var region = DDM.interactionInfo.sourceRegion; 

				// Check to see if we are over the source element's location.  We will
				// append to the bottom of the list once we are sure it was a drop in
				// the negative space (the area of the list without any list items)
				if (!region.intersect(pt)) {
					var destDD = DDM.getDDById(id);
					destEl.appendChild(this.getEl());
					destDD.isEmpty = false;
					DDM.refreshCache();
				}

			}
		},

		onDrag: function(e) {

			// Keep track of the direction of the drag for use during onDragOver
			var y = Event.getPageY(e);

			if (y < this.lastY) {
				this.goingUp = true;
			} else if (y > this.lastY) {
				this.goingUp = false;
			}

			this.lastY = y;
		},

		onDragOver: function(e, id) {
			var up = this.goingUp;
			var srcEl = this.getEl();
			var destEl = Dom.get(id);
			
			var insert = function(){
				var orig_p = srcEl.parentNode;
				var p = destEl.parentNode;

				if (up) {
					p.insertBefore(srcEl, destEl); // insert above
				} else {
					p.insertBefore(srcEl, destEl.nextSibling); // insert below
				}
	            
				DDM.refreshCache();
			};
			var append = function(){
				destEl.appendChild(srcEl);
				DDM.refreshCache();
			};
			
			
			if(destEl.tagName.toLowerCase() == els[1]){
				if(Dom.hasClass(destEl.parentNode, secs[0])){
					insert();
				}
			}
			
			else if(destEl.tagName.toLowerCase() == secs[1]){
				if(Dom.hasClass(destEl, secs[0])){
					Dom.addClass(destEl, 'over');
					if(Dom.getElementsByClassName(els[0],els[1],destEl).length < 1){
						destEl.appendChild(srcEl);
					}
				}
			}
			
		},
		onDragOut: function(e, id) {
			var srcEl = this.getEl();
			var destEl = Dom.get(id);
			//if(Dom.removeClass(destEl, 'over')){
				Dom.removeClass(destEl, 'over');
			//}
		}
	});
	regSecs();
};

SUI.util.SKHSlides = {
	init: function(){
		//SKYSA-home-container, slides, slide
		//SKYSA-home-links
		var Dom = YAHOO.util.Dom,
			Event = YAHOO.util.Event,
			slideh = Dom.getElementsByClassName('slides','div','SKYSA-home-container')[0],
			slides = Dom.getElementsByClassName('slide','div','SKYSA-home-container'),
			links = Dom.get('SKYSA-home-links').getElementsByTagName('a');
		for(var i=0;links[i];i++){
			Event.on(links[i],'mouseover',function(){
				//slides.style.backgroundImage = 'url('+this.getAttribute('slideimage')+')';
				for(var ii=0;links[ii];ii++){
					Dom.removeClass(links[ii],'sel');
				}
				Dom.addClass(this,'sel');
				SUI.util.SKHSlides.scrollTo(this.getAttribute('for'));
			});
			Event.on(links[i],'click',function(){
				//slides.style.backgroundImage = 'url('+this.getAttribute('slideimage')+')';
				try{
					for(var ii=0;links[ii];ii++){
						Dom.removeClass(links[ii],'sel');
					}
					Dom.addClass(this,'sel');
					SUI.util.SKHSlides.scrollTo(this.getAttribute('for'));
				}catch(e){}
				return false;
			});
		}
	},
	initFeat: function(o,t){
		SUI.util.SKHSlides.featTime[t] = {};
		SUI.util.SKHSlides.featTime[t].first = setTimeout(function(){
			YAHOO.util.Dom.addClass(o,'over');
			
		},t*100);
		SUI.util.SKHSlides.featTime[t].second = setTimeout(function(){
			YAHOO.util.Dom.removeClass(o,'over');
		},t*100 + 200);
	},
	cycleFeatures: function(){
		SUI.util.SKHSlides.featTime = {};
		var Dom = YAHOO.util.Dom,
			f = Dom.getElementsByClassName('left','span','SKYSA-sl-features')[0].getElementsByTagName('a');
			for(var i=0;f[i];i++){
				SUI.util.SKHSlides.initFeat(f[i],i);
			}
	},
	playMov: function(o){
		o.parentNode.innerHTML = '<object width="465" height="322"><param name="movie" value="http://www.youtube.com/v/8wXv6khjI0Y&hl=en_US&fs=1&autoplay=1&color1=0x006699&color2=0x54abd6"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="wmode" value="opaque"></param><embed src="http://www.youtube.com/v/8wXv6khjI0Y&hl=en_US&fs=1&autoplay=1&color1=0x006699&color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="465" height="322" wmode="opaque"></embed></object>';
	},
	scrollTo: function(n){
		//var s = YAHOO.util.Dom.getRegion(SUI.store.GGAslides.list[n].id).left;
		var Dom = YAHOO.util.Dom;
		if(SUI.util.SKHSlides.scrollSetAnim) SUI.util.SKHSlides.scrollSetAnim.stop();
		var s = document.getElementById(n).offsetLeft;
		var toScroll = Dom.getElementsByClassName('slides','div','SKYSA-home-container')[0];
		//toScroll.scrollLeft = s;
		
		if(toScroll.scrollLeft != s){
			if(navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i)){
				toScroll.scrollLeft = s;
			}
			else{
				SUI.util.SKHSlides.scrollSetAnim = new YAHOO.util.Scroll(toScroll, {scroll: { to: [s,0]}}, 0.5, YAHOO.util.Easing.easeOut);
				SUI.util.SKHSlides.scrollSetAnim.onComplete.subscribe(function(){
					toScroll.scrollLeft = s;
					if(n == 'SKYSA-sl-features'){
						SUI.util.SKHSlides.cycleFeatures();
					}
				});
				SUI.util.SKHSlides.scrollSetAnim.animate(); 
			}
		}
	}
};

(function(){
	var Dom = YAHOO.util.Dom,
		Event = YAHOO.util.Event;
	Event.onContentReady('element1590710A-3F2C-4DD6-8026-81F0766ABE18',function(){
		var links = document.getElementById('element1590710A-3F2C-4DD6-8026-81F0766ABE18').getElementsByTagName('li');
		for(var i=0;links[i];i++){
			if(Dom.hasClass(links[i],'on')){
				try{
					document.getElementById('SKYSA-Page-Top-Text').innerHTML = links[i].getElementsByTagName('a')[0].innerHTML;
				}catch(e){}
				break;
			}
		}
	});
})();
