
wcm = {};
wcmdyn = {};

wcm.types = {
	builders:[
	    {builder:'sectionTitleContent', type:'template', markup:'{{html title}}{{html content}}'},
	    {builder:'sectionContent', type:'template', markup:'{{html content}}'},
	    {builder:'newsflashItemContent', type:'template', markup:'<tr><td><table width="100%" cellspacing="0" cellpadding="2" border="0"><tr><td valign="top"><span class="newscontent">{{html content}}</span></td></tr></table></td></tr><tr><td><hr size="1" color="#ebceeb"></td></tr>'}
	],
	classes:{
		"wcmcreated":"wcmcreated"
	},
	paths:{
		"contentpath":"/wcmcontent",
		"loginpath":"login",
		"blankImageFile" : "images/pdf_preview_blank.gif",
		"documentPath" : "uploaded/documents/"
	}
};
wcm.fn = {};
wcm.key = {publickey1:'kineticpublickey1',publickey2:'somerset1'};

wcm.fn.createBuildTemplates = function(templates){
	jQuery.each(templates, function(i,o){
		if(o.type === 'template'){
			jQuery.template(o.builder, o.markup);
		}
	});
};

wcm.fn.applyTemplate = function(data){
	var dataToRender = data.asset;
	var selector = data.selector;
	var templateBuilder = data.template.template;
	if(data.hasOwnProperty('clearcontent') && data.clearcontent == true){
		jQuery(selector).empty();
	}
	//var dataToRender = filterData(data, layout.data);
	//jQuery.tmpl(layout.layoutBuilder, dataToRender ).appendTo( layout.selector );
	jQuery.tmpl(templateBuilder, dataToRender ).appendTo( selector );
};

/*filterData = function(data, filter){
	var da = [];
	jQuery.each(filter, function(i,n){
		var paths = n.split('.');
		var cursor = data;
		for(path in paths){
			cursor = cursor[paths[path]];
		}
				
		da.push(cursor);
	});
	return da;
};*/

wcm.fn.initBuilders = function(builders){
	wcm.fn.createBuildTemplates(builders);
};

wcm.fn.applyContent = function(content){
	jQuery.each(content, function(i,data){
		wcm.fn.applyTemplate(data);
	});
};

wcm.fn.construct = function(){
	wcm.fn.clearPreped();
	
	wcm.fn.initBuilders(wcm.types.builders);
	
	wcm.fn.getWcmContent();
};

wcm.fn.clearPreped = function(){
	jQuery(".wcmpreped").empty();
};

wcm.fn.getWcmContent = function(){
	var pathname = window.location.pathname;
	var contentURL = window.location.protocol + "//" + window.location.host + window.location.pathname;
	jQuery.ajax({
		type: "GET",
		url: contentURL,
		data: "requestType=content",
		dataType: "json",
		success: function(jsondata){
			wcm.content = jsondata;
			wcm.fn.applyContent(wcm.content);
		}		   
	});
};

wcm.applyContent = function(){
	jQuery(document).ready(function(){
		wcm.fn.construct();
	});
};

wcm.fn.login = function(user, password,validationErrorFn){
	var strToSend = {username:user};	
	strToSend.passhash1 = SHA1(password + '.' + wcm.key.publickey1);
	strToSend.passhash2 = SHA1(password + '.' + wcm.key.publickey2);
		
	jQuery.ajax({
		type: "POST",
		url: wcm.types.paths.loginpath,
		data: strToSend,
		dataType: "json",
		success: function(jsondata){
			if(jsondata.success === true){
				wcm.types.paths.privatepath = jsondata.accessUrl;
				window.location = jsondata.accessUrl;
			}else{
				validationErrorFn();
			}
		}		   
	});	
};

wcm.fn.listToMatrix = function(list, elementsPerSubArray) {
    var matrix = [], i, k;

    for (i = 0, k = -1; i < list.length; i++) {
        if (i % elementsPerSubArray === 0) {
            k++;
            matrix[k] = [];
        }

        matrix[k].push(list[i]);
    }

    return matrix;
};
wcm.fn.look = function(data){
	var k = 1;
	k++;
	return data;
};

wcm.fn.getImageFile = function(document){
	if(document.imageFileName != null && document.imageFileName != "")
		return wcm.types.paths.documentPath + document.imageFileName;
	return wcm.types.paths.blankImageFile;
};

wcm.fn.getDocumentFile = function(document){
	return wcm.types.paths.documentPath + document.contentFileName;
};

wcm.types.builders.push({builder:'docTableBuilder', type:'template', markup:'{{tmpl(wcm.fn.listToMatrix(assets, 5)) "docTableRowBuilder"}}'});
wcm.types.builders.push({builder:'docTableRowBuilder', type:'template', markup:'<tr>{{tmpl($data) "docTableItemBuilder"}}</tr>'});
//wcm.types.builders.push({builder:'docTableItemBuilder', type:'template', markup:'<td>${item.name}</td>'});
wcm.types.builders.push({builder:'newsflashContent', type:'template', markup:'{{tmpl(wcm.fn.look($data.assets)) "newsflashItemContent"}}'});

wcm.types.builders.push({builder:'docTableItemBuilder', type:'template', markup:''+
'<td valign="top">'+
'<table width="180" border="0" cellpadding="5" cellspacing="1">'+
'<tbody>'+
'<tr>'+
'    <td class="LfCell" align="center" valign="top" bgcolor="white">'+
'    </td>'+
'</tr>'+
'<tr>'+
'    <td style="height: 180px" align="center" valign="top" bgcolor="white">'+
'        <a href="${wcm.fn.getDocumentFile(document)}">'+
'            <img alt="" src="${wcm.fn.getImageFile(document)}" border="0" class="imgbor" width="140">'+
'        </a>'+
'    </td>'+
'</tr>'+
'<tr>'+
'    <td style="height: 42px" class="LfCell" align="center" valign="top" bgcolor="white">'+
'        <a href="${wcm.fn.getDocumentFile(document)}">'+
'        	<strong>${document.title}</strong>'+
'        </a>'+
'   	</td>'+
'</tr>'+
'</tbody>'+
'</table>'+
'</td>'});

wcm.types.builders.push({builder:'marketingQuoteItem', type:'template', markup:'<li style="font-weight: bold; font-style: italic;">{{html content}}<br/></li>'});
wcm.types.builders.push({builder:'documentLink', type:'template', markup:'<a href="${wcm.fn.getDocumentFile(document)}"><strong>${name}</strong></a>'});
wcm.types.builders.push({builder:'documentLinkBk', type:'template', markup:'{{tmpl($data) "documentLink"}}<br/>'});
wcm.types.builders.push({builder:'documentLinkBkCol', type:'template', markup:'{{tmpl(assets) "documentLinkBk"}}'});
wcm.types.builders.push({builder:'documentLinkCol', type:'template', markup:'{{tmpl(assets) "documentLink"}}'});

