ROADWORK_INFERFERENCE_COLOR = '#275485';

ROADWORK_WEIGHT = 7;
DEVIATION_WEIGHT = 7;

FOCUS_COLOR_ROADWORK = '#FF0000';
//OLD_FOCUS_COLOR_ROADWORK = '#FF0080';
OLD_FOCUS_COLOR_ROADWORK = '#FF0000';
FOCUS_OPACITY_ROADWORK = 1;
LOSE_FOCUS_COLOR_ROADWORK = '#FF0000';
//OLD_LOSE_FOCUS_COLOR_ROADWORK = '#FF0080';
OLD_LOSE_FOCUS_COLOR_ROADWORK = '#FF0000';
LOSE_FOCUS_OPACITY_ROADWORK = 0.5;


FOCUS_COLOR_DEVIATION = '#00FF00';
//OLD_FOCUS_COLOR_DEVIATION = '#FF8040';
OLD_FOCUS_COLOR_DEVIATION = '#00FF00';
FOCUS_OPACITY_DEVIATION = 1;
LOSE_FOCUS_COLOR_DEVIATION = '#00FF00';
//OLD_LOSE_FOCUS_COLOR_DEVIATION = '#FF8040';
OLD_LOSE_FOCUS_COLOR_DEVIATION = '#00FF00';
LOSE_FOCUS_OPACITY_DEVIATION = 0.5;

checkInterface = function(theObject, theInterface) {
    for (var member in theInterface) {
        if ( (typeof theObject[member] != typeof theInterface[member]) ) {
            alert("object failed to implement interface member " + member);
            return false;
        }
    }
    //if we get here, it passed the test, so return true
    return true;
};


helpersGenerateStyle = function(isFocus, isDeviation, isNew, isOldGeometry){
	var color = '';
	var weight = '';
	var opacity = '';
	   
    if(isFocus){
        if(isDeviation){
        	if(isOldGeometry)
        		color = OLD_FOCUS_COLOR_DEVIATION  ;//: FOCUS_COLOR_ROADWORK;
        	else
        		if(isNew)
              	 	color =FOCUS_COLOR_DEVIATION;
        		else
        			color = OLD_FOCUS_COLOR_DEVIATION ;
            weight = DEVIATION_WEIGHT;
            opacity = FOCUS_OPACITY_DEVIATION;
        }else{
        	if(isOldGeometry)
        		color = OLD_FOCUS_COLOR_ROADWORK  ;//: FOCUS_COLOR_ROADWORK;
        	else
        		if(isNew)
              	 	color =FOCUS_COLOR_ROADWORK;
        		else
        			color = OLD_FOCUS_COLOR_ROADWORK ;

        	weight = ROADWORK_WEIGHT;
            opacity = FOCUS_OPACITY_ROADWORK;
        }
    }else{
       if(isDeviation){
    	   if(isOldGeometry)
       		color = OLD_LOSE_FOCUS_COLOR_DEVIATION  ;//: FOCUS_COLOR_ROADWORK;
       	else
       		if(isNew)
             	 	color =LOSE_FOCUS_COLOR_DEVIATION;
       		else
       			color = OLD_LOSE_FOCUS_COLOR_DEVIATION ;
    	   
            //color = !isOldGeometry ? LOSE_FOCUS_COLOR_DEVIATION : OLD_LOSE_FOCUS_COLOR_DEVIATION;
            weight = DEVIATION_WEIGHT;
            opacity = LOSE_FOCUS_OPACITY_DEVIATION;
           //if(isNew)
             // 	 color =LOSE_FOCUS_COLOR_DEVIATION;
        }else{
        	 if(isOldGeometry)
            		color = OLD_LOSE_FOCUS_COLOR_ROADWORK  ;//: FOCUS_COLOR_ROADWORK;
            	else
            		if(isNew)
                  	 	color =LOSE_FOCUS_COLOR_ROADWORK;
            		else
            			color = OLD_LOSE_FOCUS_COLOR_ROADWORK ;
        	 
           // color = !isOldGeometry ? LOSE_FOCUS_COLOR_ROADWORK : OLD_LOSE_FOCUS_COLOR_ROADWORK;
            weight = ROADWORK_WEIGHT;
            opacity = LOSE_FOCUS_OPACITY_ROADWORK;
            //if(isNew)
             //	 color =LOSE_FOCUS_OPACITY_ROADWORK;
        }
    }
        
    var opt = {
        strokeWeight: weight,
        strokeColor: color,
        strokeOpacity: opacity
    };
    return opt;
};
