/*
 * key:
 * tid = TripID
 * sid = SegmentID
 * cid = ComponentID
 *  
 */

/*
 * BEGIN ITINERARY CLASS
 */
function Itinerary() {
	this.days = new Array();
	this.addDay = Itinerary_addDay;
	this.getDay = Itinerary_getDay;
	this.save = Itinerary_save;
	this.deleteDay = Itinerary_deleteDay;
	this.deleteAllDays = Itinerary_deleteAllDays;
	this.moveDay = Itinerary_moveDay;
}

function Itinerary_addDay(thisDay) {
	existingDay = this.getDay(thisDay.tripid);
	
	if(existingDay) {
		existingDay = thisDay;
	} else {
		this.days[this.days.length] = thisDay;
	}
	
	this.save();
}

function Itinerary_getDay(tid) {
	var thisDay;
	
	for(var i = 0; i < this.days.length; i++) {
		if(this.days[i].tripid == tid) {
			thisDay = this.days[i];
		}
	}
	
	if(thisDay) {
		return thisDay;
	} else {
		return null;
	}
}

function Itinerary_save() {
	var wddx = new WddxSerializer();
	wddx.serialize(this);
	createCookie('YOURITINERARY', escape(wddx.extractPacket()), 365);	
}

function Itinerary_isSaved() {
	if(readCookie('YOURITINERARY')) {
		return true;
	} else return false;
}

function Itinerary_deleteDay(tid) {
	var indexToDelete = -1;
	for(var i = 0; i < this.days.length; i++) {
		if(this.days[i].tripid == tid) {
			indexToDelete = i;
		}
		if(indexToDelete != -1 && i != this.days.length-1) {
			this.days[i] = this.days[i+1];
		}
	}
	this.days.length = this.days.length - 1;
	this.save();
}

function Itinerary_deleteAllDays() {
	//this.days = new Array();
	//this.save();
	eraseCookie('YOURITINERARY');
}


function Itinerary_moveDay(tid, pos) {
	var posToMove = -1;
	var tempDay;
	
	for(var i = 0; i < this.days.length; i++) {
		if(this.days[i].tripid == tid) {
			posToMove = i;
		}
	}
	
	tempDay = this.days[posToMove + pos];
	this.days[posToMove + pos] = this.days[posToMove]; 
	this.days[posToMove] = tempDay;
	
	this.save();
}

//END ITINERARY CLASS

function Day(tid) {
	this.segments = new Array();
	//default values for segments
	this.segments[0] = 1;
	this.segments[1] = 1;
	this.segments[2] = 1;
	this.segments[3] = 1;
	this.tripid = tid; 
	this.setSegment = Day_setSegment;
	this.dump = Day_dump;
}

function Day_setSegment(sid, cid) {
	this.segments[sid] = cid;
}


function Day_dump() {
	var wddx = new WddxSerializer();
	wddx.initPacket();
	wddx.serializeValue(this);
	body = document.getElementsByTagName("body")[0];
	script = document.createElement('textarea');
	script.style.width="100%";
	script.style.height="300px";
   	body.appendChild(script);
	script.innerHTML = wddx.extractPacket(); 
}